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

#ifndef PWindowGlobal_h
#define PWindowGlobal_h

#include "mozilla/Attributes.h"
#include "IPCMessageStart.h"
#include "mozilla/RefPtr.h"
#include "nsString.h"
#include "nsTArray.h"
#include "nsTHashtable.h"
#include "mozilla/MozPromise.h"
#include "mozilla/OperatorNewExtensions.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/ipc/ByteBuf.h"
#include "mozilla/ipc/FileDescriptor.h"
#include "mozilla/ipc/IPCForwards.h"
#include "mozilla/ipc/Shmem.h"

// Headers for typedefs
#include "mozilla/dom/JSActor.h"
#include "mozilla/ipc/IPDLStructMember.h"
#include "mozilla/dom/DOMTypes.h"
#include "mozilla/dom/ClientIPCTypes.h"
#include "mozilla/dom/JSIPCValue.h"
#include "mozilla/net/NeckoChannelParams.h"
#include "mozilla/dom/sessionstore/SessionStoreTypes.h"


//-----------------------------------------------------------------------------
// Declaration of the IPDL type |struct JSActorMessageMeta|
//
namespace mozilla {
namespace dom {
class JSActorMessageMeta final
{
private:
    typedef ::nsCString nsCString;
    typedef ::nsString nsString;
    typedef ::uint64_t uint64_t;
    typedef ::mozilla::dom::JSActorMessageKind JSActorMessageKind;

public:
#ifdef __clang__
#  pragma clang diagnostic push
#  if __has_warning("-Wdefaulted-function-deleted")
#    pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#  endif
#endif
    JSActorMessageMeta() = default;
#ifdef __clang__
#  pragma clang diagnostic pop
#endif

    MOZ_IMPLICIT JSActorMessageMeta(
            const nsCString& _actorName,
            const nsString& _messageName,
            const uint64_t& _queryId,
            const JSActorMessageKind& _kind) :
        actorName_(_actorName),
        messageName_(_messageName),
        kind_(_kind),
        queryId_(_queryId)
    {
    }

    MOZ_IMPLICIT JSActorMessageMeta(
            nsCString&& _actorName,
            nsString&& _messageName,
            uint64_t&& _queryId,
            JSActorMessageKind&& _kind) :
        actorName_(std::move(_actorName)),
        messageName_(std::move(_messageName)),
        kind_(std::move(_kind)),
        queryId_(std::move(_queryId))
    {
    }

    nsCString&
    actorName()
    {
        return actorName_;
    }
    const nsCString&
    actorName() const
    {
        return actorName_;
    }

    nsString&
    messageName()
    {
        return messageName_;
    }
    const nsString&
    messageName() const
    {
        return messageName_;
    }

    uint64_t&
    queryId()
    {
        return queryId_;
    }
    const uint64_t&
    queryId() const
    {
        return queryId_;
    }

    JSActorMessageKind&
    kind()
    {
        return kind_;
    }
    const JSActorMessageKind&
    kind() const
    {
        return kind_;
    }

private:
    ::mozilla::ipc::IPDLStructMember<nsCString> actorName_;
    ::mozilla::ipc::IPDLStructMember<nsString> messageName_;
    ::mozilla::ipc::IPDLStructMember<JSActorMessageKind> kind_;
    ::mozilla::ipc::IPDLStructMember<uint64_t> queryId_;
};
} // namespace dom
} // namespace mozilla

namespace IPC {
template<>
struct ParamTraits <::mozilla::dom::JSActorMessageMeta>
{
    typedef ::mozilla::dom::JSActorMessageMeta paramType;
    static void
    Write(
            IPC::MessageWriter* aWriter,
            const paramType& aVar);
    static IPC::ReadResult<paramType>
    Read(IPC::MessageReader* aReader);
};
} // namespace IPC


//-----------------------------------------------------------------------------
// Declaration of the IPDL type |struct IPCWebShareData|
//
namespace mozilla {
namespace dom {
class IPCWebShareData final
{
private:
    typedef ::nsCString nsCString;
    typedef ::nsIURI nsIURI;

public:
#ifdef __clang__
#  pragma clang diagnostic push
#  if __has_warning("-Wdefaulted-function-deleted")
#    pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#  endif
#endif
    IPCWebShareData() = default;
#ifdef __clang__
#  pragma clang diagnostic pop
#endif

    MOZ_IMPLICIT IPCWebShareData(
            const nsCString& _title,
            const nsCString& _text,
            nsIURI* _url) :
        title_(_title),
        text_(_text),
        url_(_url)
    {
    }

    MOZ_IMPLICIT IPCWebShareData(
            nsCString&& _title,
            nsCString&& _text,
            RefPtr<nsIURI>&& _url) :
        title_(std::move(_title)),
        text_(std::move(_text)),
        url_(std::move(_url))
    {
    }

    nsCString&
    title()
    {
        return title_;
    }
    const nsCString&
    title() const
    {
        return title_;
    }

    nsCString&
    text()
    {
        return text_;
    }
    const nsCString&
    text() const
    {
        return text_;
    }

    RefPtr<nsIURI>&
    url()
    {
        return url_;
    }
    nsIURI*
    url() const
    {
        return url_;
    }

private:
    ::mozilla::ipc::IPDLStructMember<nsCString> title_;
    ::mozilla::ipc::IPDLStructMember<nsCString> text_;
    ::mozilla::ipc::IPDLStructMember<RefPtr<nsIURI>> url_;
};
} // namespace dom
} // namespace mozilla

namespace IPC {
template<>
struct ParamTraits <::mozilla::dom::IPCWebShareData>
{
    typedef ::mozilla::dom::IPCWebShareData paramType;
    static void
    Write(
            IPC::MessageWriter* aWriter,
            const paramType& aVar);
    static IPC::ReadResult<paramType>
    Read(IPC::MessageReader* aReader);
};
} // namespace IPC

namespace mozilla {
namespace dom {
class PWindowGlobalParent;
} // namespace dom
} // namespace mozilla
namespace mozilla {
namespace dom {
class PWindowGlobalChild;
} // namespace dom
} // namespace mozilla

//-----------------------------------------------------------------------------
// Code common to PWindowGlobalChild and PWindowGlobalParent
//
namespace mozilla {
namespace dom {
namespace PWindowGlobal {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::dom::PWindowGlobalParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::dom::PWindowGlobalChild>* aChild);

nsresult
CreateEndpoints(
        mozilla::ipc::Endpoint<::mozilla::dom::PWindowGlobalParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::dom::PWindowGlobalChild>* aChild);

enum MessageType {
    PWindowGlobalStart = PWindowGlobalMsgStart << 16,
    Msg___delete____ID,
    Reply___delete____ID,
    Msg_MakeFrameLocal__ID,
    Msg_MakeFrameRemote__ID,
    Reply_MakeFrameRemote__ID,
    Msg_DrawSnapshot__ID,
    Reply_DrawSnapshot__ID,
    Msg_DispatchSecurityPolicyViolation__ID,
    Msg_SaveStorageAccessPermissionGranted__ID,
    Msg_AddBlockedFrameNodeByClassifier__ID,
    Msg_ResetScalingZoom__ID,
    Msg_RestoreDocShellState__ID,
    Reply_RestoreDocShellState__ID,
    Msg_RestoreTabContent__ID,
    Reply_RestoreTabContent__ID,
    Msg_RawMessage__ID,
    Msg_LoadURI__ID,
    Msg_InternalLoad__ID,
    Msg_UpdateDocumentURI__ID,
    Msg_UpdateDocumentPrincipal__ID,
    Msg_UpdateDocumentHasLoaded__ID,
    Msg_UpdateDocumentHasUserInteracted__ID,
    Msg_UpdateSandboxFlags__ID,
    Msg_UpdateDocumentCspSettings__ID,
    Msg_UpdateCookieJarSettings__ID,
    Msg_UpdateDocumentTitle__ID,
    Msg_UpdateDocumentSecurityInfo__ID,
    Msg_UpdateHttpsOnlyStatus__ID,
    Msg_SetIsInitialDocument__ID,
    Msg_Share__ID,
    Reply_Share__ID,
    Msg_GetContentBlockingEvents__ID,
    Reply_GetContentBlockingEvents__ID,
    Msg_SetClientInfo__ID,
    Msg_CheckPermitUnload__ID,
    Reply_CheckPermitUnload__ID,
    Msg_ExpectPageUseCounters__ID,
    Msg_AccumulatePageUseCounters__ID,
    Msg_RequestRestoreTabContent__ID,
    Msg_UpdateBFCacheStatus__ID,
    Msg_UpdateActivePeerConnectionStatus__ID,
    Msg_SetSingleChannelId__ID,
    Msg_SetDocumentDomain__ID,
    Msg_Destroy__ID,
    Msg_ReloadWithHttpsOnlyException__ID,
    Msg_GetStorageAccessPermission__ID,
    Reply_GetStorageAccessPermission__ID,
    Msg_SetCookies__ID,
    Msg_OnInitialStorageAccess__ID,
    Msg_RecordUserActivationForBTP__ID,
    Msg_PWebAuthnTransactionConstructor__ID,
    Reply_PWebAuthnTransactionConstructor__ID,
    Msg_PWebIdentityConstructor__ID,
    Reply_PWebIdentityConstructor__ID,
    Msg_NotifyPermissionChange__ID,
    Msg_ProcessCloseRequest__ID,
    PWindowGlobalEnd
};

mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_MakeFrameLocal(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_MakeFrameRemote(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_MakeFrameRemote(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DrawSnapshot(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_DrawSnapshot(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DispatchSecurityPolicyViolation(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SaveStorageAccessPermissionGranted(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_AddBlockedFrameNodeByClassifier(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ResetScalingZoom(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_RestoreDocShellState(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_RestoreDocShellState(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_RestoreTabContent(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_RestoreTabContent(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_RawMessage(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_LoadURI(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_InternalLoad(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentURI(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentPrincipal(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentHasLoaded(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentHasUserInteracted(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateSandboxFlags(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentCspSettings(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateCookieJarSettings(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentTitle(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateDocumentSecurityInfo(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateHttpsOnlyStatus(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SetIsInitialDocument(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Share(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_Share(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_GetContentBlockingEvents(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_GetContentBlockingEvents(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SetClientInfo(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_CheckPermitUnload(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_CheckPermitUnload(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ExpectPageUseCounters(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_AccumulatePageUseCounters(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_RequestRestoreTabContent(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateBFCacheStatus(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateActivePeerConnectionStatus(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SetSingleChannelId(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SetDocumentDomain(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Destroy(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ReloadWithHttpsOnlyException(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_GetStorageAccessPermission(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_GetStorageAccessPermission(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SetCookies(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnInitialStorageAccess(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_RecordUserActivationForBTP(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_PWebAuthnTransactionConstructor(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_PWebAuthnTransactionConstructor(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_PWebIdentityConstructor(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_PWebIdentityConstructor(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_NotifyPermissionChange(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ProcessCloseRequest(IPC::Message::routeid_t routingId);



} // namespace PWindowGlobal
} // namespace dom
} // namespace mozilla

#endif // ifndef PWindowGlobal_h
