blob: 8b8efdf5c96be8e6afdf8b1c048aad2030f2ccf2 [file] [log] [blame]
// Copyright 2017 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.
#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_MESSAGING_CLONEABLE_MESSAGE_MOJOM_TRAITS_H_
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_MESSAGING_CLONEABLE_MESSAGE_MOJOM_TRAITS_H_
#include "mojo/public/cpp/base/big_buffer.h"
#include "mojo/public/cpp/base/unguessable_token_mojom_traits.h"
#include "third_party/blink/public/common/messaging/cloneable_message.h"
#include "third_party/blink/public/mojom/messaging/cloneable_message.mojom.h"
#include "url/mojom/origin_mojom_traits.h"
namespace mojo {
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::CloneableMessage::DataView,
blink::CloneableMessage> {
static mojo_base::BigBufferView encoded_message(
blink::CloneableMessage& input);
static std::vector<blink::mojom::SerializedBlobPtr>& blobs(
blink::CloneableMessage& input) {
return input.blobs;
}
static const base::Optional<url::Origin>& sender_origin(
const blink::CloneableMessage& input) {
return input.sender_origin;
}
static uint64_t stack_trace_id(const blink::CloneableMessage& input) {
return input.stack_trace_id;
}
static int64_t stack_trace_debugger_id_first(
const blink::CloneableMessage& input) {
return input.stack_trace_debugger_id_first;
}
static int64_t stack_trace_debugger_id_second(
const blink::CloneableMessage& input) {
return input.stack_trace_debugger_id_second;
}
static bool stack_trace_should_pause(const blink::CloneableMessage& input) {
return input.stack_trace_should_pause;
}
static const base::Optional<base::UnguessableToken>& locked_agent_cluster_id(
const blink::CloneableMessage& input) {
return input.locked_agent_cluster_id;
}
static bool Read(blink::mojom::CloneableMessage::DataView data,
blink::CloneableMessage* out);
static std::vector<
mojo::PendingRemote<blink::mojom::FileSystemAccessTransferToken>>&
file_system_access_tokens(blink::CloneableMessage& input) {
return input.file_system_access_tokens;
}
};
} // namespace mojo
#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_MESSAGING_CLONEABLE_MESSAGE_MOJOM_TRAITS_H_