#include "components/sharing_message/sharing_message_sender.h"
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "base/uuid.h"
#include "components/send_tab_to_self/target_device_info.h"
#include "components/sharing_message/proto/sharing_message_type.pb.h"
#include "components/sharing_message/sharing_constants.h"
#include "components/sharing_message/sharing_fcm_sender.h"
#include "components/sharing_message/sharing_metrics.h"
#include "components/sharing_message/sharing_utils.h"
#include "components/sync/protocol/unencrypted_sharing_message.pb.h"
#include "components/sync_device_info/local_device_info_provider.h"
SharingMessageSender::SharingMessageSender(
syncer::LocalDeviceInfoProvider* local_device_info_provider,
scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: … { … }
SharingMessageSender::~SharingMessageSender() = default;
base::OnceClosure SharingMessageSender::SendMessageToDevice(
const SharingTargetDeviceInfo& device,
base::TimeDelta response_timeout,
components_sharing_message::SharingMessage message,
DelegateType delegate_type,
ResponseCallback callback) { … }
base::OnceClosure SharingMessageSender::SendUnencryptedMessageToDevice(
const SharingTargetDeviceInfo& device,
sync_pb::UnencryptedSharingMessage message,
DelegateType delegate_type,
ResponseCallback callback) { … }
SharingMessageSender::SendMessageDelegate*
SharingMessageSender::MaybeGetSendMessageDelegate(
const SharingTargetDeviceInfo& device,
sharing_message::MessageType message_type,
int trace_id,
const std::string& message_guid,
DelegateType delegate_type) { … }
void SharingMessageSender::OnMessageSent(const std::string& message_guid,
SharingSendMessageResult result,
std::optional<std::string> message_id,
SharingChannelType channel_type) { … }
void SharingMessageSender::OnAckReceived(
const std::string& message_id,
std::unique_ptr<components_sharing_message::ResponseMessage> response) { … }
void SharingMessageSender::RegisterSendDelegate(
DelegateType type,
std::unique_ptr<SendMessageDelegate> delegate) { … }
SharingFCMSender* SharingMessageSender::GetFCMSenderForTesting() const { … }
void SharingMessageSender::InvokeSendMessageCallback(
const std::string& message_guid,
SharingSendMessageResult result,
std::unique_ptr<components_sharing_message::ResponseMessage> response) { … }
SharingMessageSender::SentMessageMetadata::SentMessageMetadata(
ResponseCallback callback,
base::TimeTicks timestamp,
sharing_message::MessageType type,
SharingDevicePlatform receiver_device_platform,
int trace_id,
SharingChannelType channel_type,
base::TimeDelta receiver_pulse_interval)
: … { … }
SharingMessageSender::SentMessageMetadata::SentMessageMetadata(
SentMessageMetadata&& other) = default;
SharingMessageSender::SentMessageMetadata&
SharingMessageSender::SentMessageMetadata::operator=(
SentMessageMetadata&& other) = default;
SharingMessageSender::SentMessageMetadata::~SentMessageMetadata() = default;