#include "chrome/browser/media/router/providers/dial/dial_internal_message_util.h"
#include <array>
#include "base/base64url.h"
#include "base/hash/sha1.h"
#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
#include "base/strings/escape.h"
#include "base/strings/string_number_conversions.h"
#include "components/media_router/browser/route_message_util.h"
#include "components/media_router/common/discovery/media_sink_internal.h"
#include "url/url_util.h"
namespace media_router {
namespace {
constexpr int kSequenceNumberWrap = …;
int GetNextDialLaunchSequenceNumber() { … }
std::string GetNextSessionId() { … }
std::string DialInternalMessageTypeToString(DialInternalMessageType type) { … }
DialInternalMessageType StringToDialInternalMessageType(
const std::string& str_type) { … }
std::string DialReceiverActionToString(DialReceiverAction action) { … }
std::string DialAppInfoErrorToString(DialAppInfoResultCode error) { … }
}
std::unique_ptr<DialInternalMessage> DialInternalMessage::From(
base::Value::Dict message,
std::string* error) { … }
DialInternalMessage::DialInternalMessage(DialInternalMessageType type,
std::optional<base::Value> body,
const std::string& client_id,
int sequence_number)
: … { … }
DialInternalMessage::~DialInternalMessage() = default;
CustomDialLaunchMessageBody CustomDialLaunchMessageBody::From(
const DialInternalMessage& message) { … }
CustomDialLaunchMessageBody::CustomDialLaunchMessageBody() = default;
CustomDialLaunchMessageBody::CustomDialLaunchMessageBody(
bool do_launch,
const std::optional<std::string>& launch_parameter)
: … { … }
CustomDialLaunchMessageBody::CustomDialLaunchMessageBody(
const CustomDialLaunchMessageBody& other) = default;
CustomDialLaunchMessageBody::~CustomDialLaunchMessageBody() = default;
DialInternalMessageUtil::DialInternalMessageUtil(const std::string& hash_token)
: … { … }
DialInternalMessageUtil::~DialInternalMessageUtil() = default;
bool DialInternalMessageUtil::IsStopSessionMessage(
const DialInternalMessage& message) { … }
mojom::RouteMessagePtr DialInternalMessageUtil::CreateNewSessionMessage(
const std::string& app_name,
const std::string& client_id,
const MediaSinkInternal& sink) const { … }
mojom::RouteMessagePtr DialInternalMessageUtil::CreateReceiverActionCastMessage(
const std::string& client_id,
const MediaSinkInternal& sink) const { … }
mojom::RouteMessagePtr DialInternalMessageUtil::CreateReceiverActionStopMessage(
const std::string& client_id,
const MediaSinkInternal& sink) const { … }
std::pair<mojom::RouteMessagePtr, int>
DialInternalMessageUtil::CreateCustomDialLaunchMessage(
const std::string& client_id,
const MediaSinkInternal& sink,
const ParsedDialAppInfo& app_info) const { … }
mojom::RouteMessagePtr DialInternalMessageUtil::CreateDialAppInfoMessage(
const std::string& client_id,
const MediaSinkInternal& sink,
const ParsedDialAppInfo& app_info,
int sequence_number,
DialInternalMessageType type) const { … }
mojom::RouteMessagePtr DialInternalMessageUtil::CreateDialAppInfoErrorMessage(
DialAppInfoResultCode result_code,
const std::string& client_id,
int sequence_number,
const std::string& error_message,
std::optional<int> http_error_code) const { … }
base::Value::Dict DialInternalMessageUtil::CreateReceiver(
const MediaSinkInternal& sink) const { … }
base::Value::Dict DialInternalMessageUtil::CreateReceiverActionBody(
const MediaSinkInternal& sink,
DialReceiverAction action) const { … }
base::Value::Dict DialInternalMessageUtil::CreateNewSessionBody(
const std::string& app_name,
const MediaSinkInternal& sink) const { … }
base::Value::Dict DialInternalMessageUtil::CreateDialAppInfoBody(
const MediaSinkInternal& sink,
const ParsedDialAppInfo& app_info) const { … }
base::Value DialInternalMessageUtil::CreateDialMessageCommon(
DialInternalMessageType type,
base::Value::Dict body,
const std::string& client_id,
int sequence_number) const { … }
}