blob: 80f1e65acd030f94ee86e19cdeeec6c54336168a [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef EXTENSIONS_COMMON_API_MESSAGING_MESSAGE_H_
#define EXTENSIONS_COMMON_API_MESSAGING_MESSAGE_H_
#include "extensions/common/mojom/message_port.mojom-shared.h"
namespace extensions {
// A message consists of both the data itself as well as a user gesture state.
struct Message {
std::string data;
mojom::SerializationFormat format = mojom::SerializationFormat::kJson;
bool user_gesture = false;
bool from_privileged_context = false;
Message() = default;
Message(const std::string& data,
mojom::SerializationFormat format,
bool user_gesture,
bool from_privileged_context = false)
: data(data),
format(format),
user_gesture(user_gesture),
from_privileged_context(from_privileged_context) {}
bool operator==(const Message& other) const {
// Skipping the equality check for `from_privileged_context` here
// because this field is used only for histograms.
return data == other.data && user_gesture == other.user_gesture &&
format == other.format;
}
};
} // namespace extensions
#endif // EXTENSIONS_COMMON_API_MESSAGING_MESSAGE_H_