//
// Automatically generated by ipdlc.
// Edit at your own risk
//


#include "mozilla/ipc/URIUtils.h"
#include "mozilla/dom/PContentParent.h"
#include "mozilla/dom/PContentChild.h"
#include "mozilla/dom/PInProcessParent.h"
#include "mozilla/dom/PInProcessChild.h"
#include "mozilla/dom/DomSecurityIPCUtils.h"
#include "mozilla/GfxMessageUtils.h"
#include "mozilla/dom/CSPMessageUtils.h"
#include "mozilla/dom/PolicyContainerMessageUtils.h"
#include "mozilla/dom/DocShellMessageUtils.h"
#include "mozilla/dom/NavigationAPIIPCUtils.h"
#include "mozilla/dom/PermissionMessageUtils.h"
#include "mozilla/dom/PropertyBagUtils.h"
#include "mozilla/dom/ReferrerInfoUtils.h"
#include "mozilla/dom/TabMessageUtils.h"
#include "mozilla/dom/notification/IPCUtils.h"
#include "mozilla/ipc/URIUtils.h"
#include "mozilla/layers/LayersMessageUtils.h"
#include "mozilla/net/NeckoMessageUtils.h"
#include "mozilla/URLClassifierIPCUtils.h"
#include "mozilla/extensions/PExtensions.h"
#include "mozilla/extensions/PExtensionsParent.h"
#include "mozilla/extensions/PExtensionsChild.h"

#include "ipc/IPCMessageUtils.h"
#include "ipc/IPCMessageUtilsSpecializations.h"
#include "nsIFile.h"
#include "mozilla/ipc/Endpoint.h"
#include "mozilla/ipc/ProtocolMessageUtils.h"
#include "mozilla/ipc/ProtocolUtils.h"
#include "mozilla/ipc/ShmemMessageUtils.h"
#include "mozilla/ipc/TaintingIPCUtils.h"

namespace mozilla {
namespace extensions {
namespace PExtensions {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::extensions::PExtensionsParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::extensions::PExtensionsChild>* aChild)
{
    return mozilla::ipc::CreateEndpoints(
        mozilla::ipc::PrivateIPDLInterface(),
        aParentDestInfo, aChildDestInfo, aParent, aChild);
}
nsresult
CreateEndpoints(
        mozilla::ipc::Endpoint<::mozilla::extensions::PExtensionsParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::extensions::PExtensionsChild>* aChild)
{
    return mozilla::ipc::CreateEndpoints(
        mozilla::ipc::PrivateIPDLInterface(),
        aParent, aChild);
}
mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Reply___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_DocumentChange(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_DocumentChange__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_HistoryChange(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_HistoryChange__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_StateChange(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_StateChange__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_CreatedNavigationTarget(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_CreatedNavigationTarget__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_DOMContentLoaded(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_DOMContentLoaded__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}

} // namespace PExtensions
} // namespace extensions
} // namespace mozilla

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct FrameTransitionData|
//
namespace mozilla {
namespace extensions {
} // namespace extensions
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::extensions::FrameTransitionData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).clientRedirect());
    // Sentinel = 'clientRedirect'
    (aWriter)->WriteSentinel(713033138);
    IPC::WriteParam(aWriter, (aVar).formSubmit());
    // Sentinel = 'formSubmit'
    (aWriter)->WriteSentinel(382207017);
    IPC::WriteParam(aWriter, (aVar).forwardBack());
    // Sentinel = 'forwardBack'
    (aWriter)->WriteSentinel(455083111);
    IPC::WriteParam(aWriter, (aVar).reload());
    // Sentinel = 'reload'
    (aWriter)->WriteSentinel(147718776);
    IPC::WriteParam(aWriter, (aVar).serverRedirect());
    // Sentinel = 'serverRedirect'
    (aWriter)->WriteSentinel(734004682);
}

auto ParamTraits<::mozilla::extensions::FrameTransitionData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___clientRedirect = IPC::ReadParam<bool>(aReader);
    if (!maybe___clientRedirect) {
        aReader->FatalError("Error deserializing 'clientRedirect' (bool) member of 'FrameTransitionData'");
        return {};

    }
    auto& _clientRedirect = *maybe___clientRedirect;
    // Sentinel = 'clientRedirect'
    if ((!((aReader)->ReadSentinel(713033138)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'clientRedirect' (bool) member of 'FrameTransitionData'");
        return {};
    }
    auto maybe___formSubmit = IPC::ReadParam<bool>(aReader);
    if (!maybe___formSubmit) {
        aReader->FatalError("Error deserializing 'formSubmit' (bool) member of 'FrameTransitionData'");
        return {};

    }
    auto& _formSubmit = *maybe___formSubmit;
    // Sentinel = 'formSubmit'
    if ((!((aReader)->ReadSentinel(382207017)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'formSubmit' (bool) member of 'FrameTransitionData'");
        return {};
    }
    auto maybe___forwardBack = IPC::ReadParam<bool>(aReader);
    if (!maybe___forwardBack) {
        aReader->FatalError("Error deserializing 'forwardBack' (bool) member of 'FrameTransitionData'");
        return {};

    }
    auto& _forwardBack = *maybe___forwardBack;
    // Sentinel = 'forwardBack'
    if ((!((aReader)->ReadSentinel(455083111)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'forwardBack' (bool) member of 'FrameTransitionData'");
        return {};
    }
    auto maybe___reload = IPC::ReadParam<bool>(aReader);
    if (!maybe___reload) {
        aReader->FatalError("Error deserializing 'reload' (bool) member of 'FrameTransitionData'");
        return {};

    }
    auto& _reload = *maybe___reload;
    // Sentinel = 'reload'
    if ((!((aReader)->ReadSentinel(147718776)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'reload' (bool) member of 'FrameTransitionData'");
        return {};
    }
    auto maybe___serverRedirect = IPC::ReadParam<bool>(aReader);
    if (!maybe___serverRedirect) {
        aReader->FatalError("Error deserializing 'serverRedirect' (bool) member of 'FrameTransitionData'");
        return {};

    }
    auto& _serverRedirect = *maybe___serverRedirect;
    // Sentinel = 'serverRedirect'
    if ((!((aReader)->ReadSentinel(734004682)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'serverRedirect' (bool) member of 'FrameTransitionData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_clientRedirect),
            std::move(_formSubmit),
            std::move(_forwardBack),
            std::move(_reload),
            std::move(_serverRedirect)};
    return result__;
}

} // namespace IPC
