/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/caps/nsIScriptSecurityManager.idl
 */

#ifndef __gen_nsIScriptSecurityManager_h__
#define __gen_nsIScriptSecurityManager_h__


#include "nsISupports.h"

#include "nsIPrincipal.h"

#include "js/Value.h"

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIURI; /* forward declaration */

class nsIChannel; /* forward declaration */

class nsIClassInfo; /* forward declaration */

class nsIDocShell; /* forward declaration */

class nsIDomainPolicy; /* forward declaration */

class nsILoadContext; /* forward declaration */

// %{C++:15-21
#include "jspubtd.h"

namespace mozilla {
namespace dom {
class DomainPolicyClone;
}
}
// %}

/* starting interface:    nsIScriptSecurityManager */
#define NS_ISCRIPTSECURITYMANAGER_IID_STR "51daad87-3a0c-44cc-b620-7356801c9022"

#define NS_ISCRIPTSECURITYMANAGER_IID \
  {0x51daad87, 0x3a0c, 0x44cc, \
    { 0xb6, 0x20, 0x73, 0x56, 0x80, 0x1c, 0x90, 0x22 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIScriptSecurityManager) nsIScriptSecurityManager : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ISCRIPTSECURITYMANAGER_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsIScriptSecurityManager;

  /* [noscript] void canCreateWrapper (in JSContextPtr aJSContext, in nsIIDRef aIID, in nsISupports aObj, in nsIClassInfo aClassInfo); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_canCreateWrapper)
  NS_IMETHOD CanCreateWrapper(JSContext * aJSContext, const nsIID & aIID, nsISupports *aObj, nsIClassInfo *aClassInfo) = 0;

  /* [noscript] void canCreateInstance (in JSContextPtr aJSContext, in nsCIDRef aCID); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_canCreateInstance)
  NS_IMETHOD CanCreateInstance(JSContext * aJSContext, const nsCID & aCID) = 0;

  /* [noscript] void canGetService (in JSContextPtr aJSContext, in nsCIDRef aCID); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_canGetService)
  NS_IMETHOD CanGetService(JSContext * aJSContext, const nsCID & aCID) = 0;

  /* [noscript] void checkLoadURIFromScript (in JSContextPtr cx, in nsIURI uri); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIFromScript)
  NS_IMETHOD CheckLoadURIFromScript(JSContext * cx, nsIURI *uri) = 0;

  enum {
    STANDARD MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_STANDARD) = 0U,
    LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT) = 1U,
    ALLOW_CHROME MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_ALLOW_CHROME) = 2U,
    DISALLOW_INHERIT_PRINCIPAL MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_DISALLOW_INHERIT_PRINCIPAL) = 4U,
    DISALLOW_SCRIPT_OR_DATA MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_DISALLOW_SCRIPT_OR_DATA) = 4U,
    DISALLOW_SCRIPT MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_DISALLOW_SCRIPT) = 8U,
    DONT_REPORT_ERRORS MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_DONT_REPORT_ERRORS) = 16U
  };

  /* [binaryname(CheckLoadURIWithPrincipal)] void checkLoadURIWithPrincipalXPCOM (in nsIPrincipal aPrincipal, in nsIURI uri, in unsigned long flags, [optional] in unsigned long long innerWindowID); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIWithPrincipalXPCOM)
  NS_IMETHOD CheckLoadURIWithPrincipal(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID) = 0;

  /* [binaryname(CheckLoadURIWithPrincipalFromJS),implicit_jscontext] void checkLoadURIWithPrincipal (in nsIPrincipal aPrincipal, in nsIURI uri, [optional] in unsigned long flags, [optional] in unsigned long long innerWindowID); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIWithPrincipal)
  NS_IMETHOD CheckLoadURIWithPrincipalFromJS(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID, JSContext* cx) = 0;

  /* [binaryname(CheckLoadURIStrWithPrincipal)] void checkLoadURIStrWithPrincipalXPCOM (in nsIPrincipal aPrincipal, in AUTF8String uri, in unsigned long flags); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIStrWithPrincipalXPCOM)
  NS_IMETHOD CheckLoadURIStrWithPrincipal(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags) = 0;

  /* [binaryname(CheckLoadURIStrWithPrincipalFromJS),implicit_jscontext] void checkLoadURIStrWithPrincipal (in nsIPrincipal aPrincipal, in AUTF8String uri, [optional] in unsigned long flags); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIStrWithPrincipal)
  NS_IMETHOD CheckLoadURIStrWithPrincipalFromJS(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags, JSContext* cx) = 0;

  /* boolean inFileURIAllowlist (in nsIURI aUri); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_inFileURIAllowlist)
  NS_IMETHOD InFileURIAllowlist(nsIURI *aUri, bool *_retval) = 0;

  /* nsIPrincipal getSystemPrincipal (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getSystemPrincipal)
  NS_IMETHOD GetSystemPrincipal(nsIPrincipal **_retval) = 0;

  /* nsIPrincipal getLoadContextContentPrincipal (in nsIURI uri, in nsILoadContext loadContext); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getLoadContextContentPrincipal)
  NS_IMETHOD GetLoadContextContentPrincipal(nsIURI *uri, nsILoadContext *loadContext, nsIPrincipal **_retval) = 0;

  /* nsIPrincipal getDocShellContentPrincipal (in nsIURI uri, in nsIDocShell docShell); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getDocShellContentPrincipal)
  NS_IMETHOD GetDocShellContentPrincipal(nsIURI *uri, nsIDocShell *docShell, nsIPrincipal **_retval) = 0;

  /* [implicit_jscontext] nsIPrincipal principalWithOA (in nsIPrincipal principal, in jsval originAttributes); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_principalWithOA)
  NS_IMETHOD PrincipalWithOA(nsIPrincipal *principal, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) = 0;

  /* [implicit_jscontext] nsIPrincipal createContentPrincipal (in nsIURI uri, in jsval originAttributes); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_createContentPrincipal)
  NS_IMETHOD CreateContentPrincipal(nsIURI *uri, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) = 0;

  /* nsIPrincipal createContentPrincipalFromOrigin (in ACString origin); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_createContentPrincipalFromOrigin)
  NS_IMETHOD CreateContentPrincipalFromOrigin(const nsACString& origin, nsIPrincipal **_retval) = 0;

  /* ACString principalToJSON (in nsIPrincipal principal); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_principalToJSON)
  NS_IMETHOD PrincipalToJSON(nsIPrincipal *principal, nsACString& _retval) = 0;

  /* nsIPrincipal JSONToPrincipal (in ACString json); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_JSONToPrincipal)
  NS_IMETHOD JSONToPrincipal(const nsACString& json, nsIPrincipal **_retval) = 0;

  /* [implicit_jscontext] nsIPrincipal createNullPrincipal (in jsval originAttributes); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_createNullPrincipal)
  NS_IMETHOD CreateNullPrincipal(JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) = 0;

  /* void checkSameOriginURI (in nsIURI aSourceURI, in nsIURI aTargetURI, in boolean reportError, in boolean fromPrivateWindow); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkSameOriginURI)
  NS_IMETHOD CheckSameOriginURI(nsIURI *aSourceURI, nsIURI *aTargetURI, bool reportError, bool fromPrivateWindow) = 0;

  /* nsIPrincipal getChannelResultPrincipal (in nsIChannel aChannel); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultPrincipal)
  NS_IMETHOD GetChannelResultPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) = 0;

  /* nsIPrincipal getChannelResultStoragePrincipal (in nsIChannel aChannel); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultStoragePrincipal)
  NS_IMETHOD GetChannelResultStoragePrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) = 0;

  /* void getChannelResultPrincipals (in nsIChannel aChannel, out nsIPrincipal aPrincipal, out nsIPrincipal aPartitionedPrincipal); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultPrincipals)
  NS_IMETHOD GetChannelResultPrincipals(nsIChannel *aChannel, nsIPrincipal **aPrincipal, nsIPrincipal **aPartitionedPrincipal) = 0;

  /* [noscript,nostdcall] nsIPrincipal getChannelResultPrincipalIfNotSandboxed (in nsIChannel aChannel); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultPrincipalIfNotSandboxed)
  virtual nsresult GetChannelResultPrincipalIfNotSandboxed(nsIChannel *aChannel, nsIPrincipal **_retval) = 0;

  /* nsIPrincipal getChannelURIPrincipal (in nsIChannel aChannel); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelURIPrincipal)
  NS_IMETHOD GetChannelURIPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) = 0;

  enum {
    DEFAULT_USER_CONTEXT_ID MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_DEFAULT_USER_CONTEXT_ID) = 0U,
    DEFAULT_PRIVATE_BROWSING_ID MOZ_BINDING(binding_to, idl, const, XPIDL_nsIScriptSecurityManager_DEFAULT_PRIVATE_BROWSING_ID) = 0U
  };

  /* nsIDomainPolicy activateDomainPolicy (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_activateDomainPolicy)
  NS_IMETHOD ActivateDomainPolicy(nsIDomainPolicy **_retval) = 0;

  /* readonly attribute boolean domainPolicyActive; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIScriptSecurityManager_domainPolicyActive)
  NS_IMETHOD GetDomainPolicyActive(bool *aDomainPolicyActive) = 0;

  /* [noscript] nsIDomainPolicy activateDomainPolicyInternal (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_activateDomainPolicyInternal)
  NS_IMETHOD ActivateDomainPolicyInternal(nsIDomainPolicy **_retval) = 0;

  /* [noscript,notxpcom] void cloneDomainPolicy (in DomainPolicyClonePtr aClone); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_cloneDomainPolicy)
  NS_IMETHOD_(void) CloneDomainPolicy(mozilla::dom::DomainPolicyClone * aClone) = 0;

  /* boolean policyAllowsScript (in nsIURI aDomain); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_policyAllowsScript)
  NS_IMETHOD PolicyAllowsScript(nsIURI *aDomain, bool *_retval) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISCRIPTSECURITYMANAGER \
  NS_IMETHOD CanCreateWrapper(JSContext * aJSContext, const nsIID & aIID, nsISupports *aObj, nsIClassInfo *aClassInfo) override; \
  NS_IMETHOD CanCreateInstance(JSContext * aJSContext, const nsCID & aCID) override; \
  NS_IMETHOD CanGetService(JSContext * aJSContext, const nsCID & aCID) override; \
  NS_IMETHOD CheckLoadURIFromScript(JSContext * cx, nsIURI *uri) override; \
  NS_IMETHOD CheckLoadURIWithPrincipal(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID) override; \
  NS_IMETHOD CheckLoadURIWithPrincipalFromJS(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID, JSContext* cx) override; \
  NS_IMETHOD CheckLoadURIStrWithPrincipal(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags) override; \
  NS_IMETHOD CheckLoadURIStrWithPrincipalFromJS(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags, JSContext* cx) override; \
  NS_IMETHOD InFileURIAllowlist(nsIURI *aUri, bool *_retval) override; \
  NS_IMETHOD GetSystemPrincipal(nsIPrincipal **_retval) override; \
  NS_IMETHOD GetLoadContextContentPrincipal(nsIURI *uri, nsILoadContext *loadContext, nsIPrincipal **_retval) override; \
  NS_IMETHOD GetDocShellContentPrincipal(nsIURI *uri, nsIDocShell *docShell, nsIPrincipal **_retval) override; \
  NS_IMETHOD PrincipalWithOA(nsIPrincipal *principal, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override; \
  NS_IMETHOD CreateContentPrincipal(nsIURI *uri, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override; \
  NS_IMETHOD CreateContentPrincipalFromOrigin(const nsACString& origin, nsIPrincipal **_retval) override; \
  NS_IMETHOD PrincipalToJSON(nsIPrincipal *principal, nsACString& _retval) override; \
  NS_IMETHOD JSONToPrincipal(const nsACString& json, nsIPrincipal **_retval) override; \
  NS_IMETHOD CreateNullPrincipal(JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override; \
  NS_IMETHOD CheckSameOriginURI(nsIURI *aSourceURI, nsIURI *aTargetURI, bool reportError, bool fromPrivateWindow) override; \
  NS_IMETHOD GetChannelResultPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override; \
  NS_IMETHOD GetChannelResultStoragePrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override; \
  NS_IMETHOD GetChannelResultPrincipals(nsIChannel *aChannel, nsIPrincipal **aPrincipal, nsIPrincipal **aPartitionedPrincipal) override; \
  virtual nsresult GetChannelResultPrincipalIfNotSandboxed(nsIChannel *aChannel, nsIPrincipal **_retval) override; \
  NS_IMETHOD GetChannelURIPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override; \
  NS_IMETHOD ActivateDomainPolicy(nsIDomainPolicy **_retval) override; \
  NS_IMETHOD GetDomainPolicyActive(bool *aDomainPolicyActive) override; \
  NS_IMETHOD ActivateDomainPolicyInternal(nsIDomainPolicy **_retval) override; \
  NS_IMETHOD_(void) CloneDomainPolicy(mozilla::dom::DomainPolicyClone * aClone) override; \
  NS_IMETHOD PolicyAllowsScript(nsIURI *aDomain, bool *_retval) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSISCRIPTSECURITYMANAGER \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_canCreateWrapper)\
  nsresult CanCreateWrapper(JSContext * aJSContext, const nsIID & aIID, nsISupports *aObj, nsIClassInfo *aClassInfo); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_canCreateInstance)\
  nsresult CanCreateInstance(JSContext * aJSContext, const nsCID & aCID); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_canGetService)\
  nsresult CanGetService(JSContext * aJSContext, const nsCID & aCID); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIFromScript)\
  nsresult CheckLoadURIFromScript(JSContext * cx, nsIURI *uri); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIWithPrincipalXPCOM)\
  nsresult CheckLoadURIWithPrincipal(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIWithPrincipal)\
  nsresult CheckLoadURIWithPrincipalFromJS(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID, JSContext* cx); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIStrWithPrincipalXPCOM)\
  nsresult CheckLoadURIStrWithPrincipal(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkLoadURIStrWithPrincipal)\
  nsresult CheckLoadURIStrWithPrincipalFromJS(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags, JSContext* cx); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_inFileURIAllowlist)\
  nsresult InFileURIAllowlist(nsIURI *aUri, bool *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getSystemPrincipal)\
  nsresult GetSystemPrincipal(nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getLoadContextContentPrincipal)\
  nsresult GetLoadContextContentPrincipal(nsIURI *uri, nsILoadContext *loadContext, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getDocShellContentPrincipal)\
  nsresult GetDocShellContentPrincipal(nsIURI *uri, nsIDocShell *docShell, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_principalWithOA)\
  nsresult PrincipalWithOA(nsIPrincipal *principal, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_createContentPrincipal)\
  nsresult CreateContentPrincipal(nsIURI *uri, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_createContentPrincipalFromOrigin)\
  nsresult CreateContentPrincipalFromOrigin(const nsACString& origin, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_principalToJSON)\
  nsresult PrincipalToJSON(nsIPrincipal *principal, nsACString& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_JSONToPrincipal)\
  nsresult JSONToPrincipal(const nsACString& json, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_createNullPrincipal)\
  nsresult CreateNullPrincipal(JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_checkSameOriginURI)\
  nsresult CheckSameOriginURI(nsIURI *aSourceURI, nsIURI *aTargetURI, bool reportError, bool fromPrivateWindow); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultPrincipal)\
  nsresult GetChannelResultPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultStoragePrincipal)\
  nsresult GetChannelResultStoragePrincipal(nsIChannel *aChannel, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultPrincipals)\
  nsresult GetChannelResultPrincipals(nsIChannel *aChannel, nsIPrincipal **aPrincipal, nsIPrincipal **aPartitionedPrincipal); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelResultPrincipalIfNotSandboxed)\
  nsresult GetChannelResultPrincipalIfNotSandboxed(nsIChannel *aChannel, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_getChannelURIPrincipal)\
  nsresult GetChannelURIPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_activateDomainPolicy)\
  nsresult ActivateDomainPolicy(nsIDomainPolicy **_retval); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIScriptSecurityManager_domainPolicyActive)\
  nsresult GetDomainPolicyActive(bool *aDomainPolicyActive); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_activateDomainPolicyInternal)\
  nsresult ActivateDomainPolicyInternal(nsIDomainPolicy **_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_cloneDomainPolicy)\
  nsresult_(void) CloneDomainPolicy(mozilla::dom::DomainPolicyClone * aClone); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIScriptSecurityManager_policyAllowsScript)\
  nsresult PolicyAllowsScript(nsIURI *aDomain, bool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISCRIPTSECURITYMANAGER(_to) \
  NS_IMETHOD CanCreateWrapper(JSContext * aJSContext, const nsIID & aIID, nsISupports *aObj, nsIClassInfo *aClassInfo) override { return _to CanCreateWrapper(aJSContext, aIID, aObj, aClassInfo); } \
  NS_IMETHOD CanCreateInstance(JSContext * aJSContext, const nsCID & aCID) override { return _to CanCreateInstance(aJSContext, aCID); } \
  NS_IMETHOD CanGetService(JSContext * aJSContext, const nsCID & aCID) override { return _to CanGetService(aJSContext, aCID); } \
  NS_IMETHOD CheckLoadURIFromScript(JSContext * cx, nsIURI *uri) override { return _to CheckLoadURIFromScript(cx, uri); } \
  NS_IMETHOD CheckLoadURIWithPrincipal(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID) override { return _to CheckLoadURIWithPrincipal(aPrincipal, uri, flags, innerWindowID); } \
  NS_IMETHOD CheckLoadURIWithPrincipalFromJS(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID, JSContext* cx) override { return _to CheckLoadURIWithPrincipalFromJS(aPrincipal, uri, flags, innerWindowID, cx); } \
  NS_IMETHOD CheckLoadURIStrWithPrincipal(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags) override { return _to CheckLoadURIStrWithPrincipal(aPrincipal, uri, flags); } \
  NS_IMETHOD CheckLoadURIStrWithPrincipalFromJS(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags, JSContext* cx) override { return _to CheckLoadURIStrWithPrincipalFromJS(aPrincipal, uri, flags, cx); } \
  NS_IMETHOD InFileURIAllowlist(nsIURI *aUri, bool *_retval) override { return _to InFileURIAllowlist(aUri, _retval); } \
  NS_IMETHOD GetSystemPrincipal(nsIPrincipal **_retval) override { return _to GetSystemPrincipal(_retval); } \
  NS_IMETHOD GetLoadContextContentPrincipal(nsIURI *uri, nsILoadContext *loadContext, nsIPrincipal **_retval) override { return _to GetLoadContextContentPrincipal(uri, loadContext, _retval); } \
  NS_IMETHOD GetDocShellContentPrincipal(nsIURI *uri, nsIDocShell *docShell, nsIPrincipal **_retval) override { return _to GetDocShellContentPrincipal(uri, docShell, _retval); } \
  NS_IMETHOD PrincipalWithOA(nsIPrincipal *principal, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override { return _to PrincipalWithOA(principal, originAttributes, cx, _retval); } \
  NS_IMETHOD CreateContentPrincipal(nsIURI *uri, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override { return _to CreateContentPrincipal(uri, originAttributes, cx, _retval); } \
  NS_IMETHOD CreateContentPrincipalFromOrigin(const nsACString& origin, nsIPrincipal **_retval) override { return _to CreateContentPrincipalFromOrigin(origin, _retval); } \
  NS_IMETHOD PrincipalToJSON(nsIPrincipal *principal, nsACString& _retval) override { return _to PrincipalToJSON(principal, _retval); } \
  NS_IMETHOD JSONToPrincipal(const nsACString& json, nsIPrincipal **_retval) override { return _to JSONToPrincipal(json, _retval); } \
  NS_IMETHOD CreateNullPrincipal(JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override { return _to CreateNullPrincipal(originAttributes, cx, _retval); } \
  NS_IMETHOD CheckSameOriginURI(nsIURI *aSourceURI, nsIURI *aTargetURI, bool reportError, bool fromPrivateWindow) override { return _to CheckSameOriginURI(aSourceURI, aTargetURI, reportError, fromPrivateWindow); } \
  NS_IMETHOD GetChannelResultPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override { return _to GetChannelResultPrincipal(aChannel, _retval); } \
  NS_IMETHOD GetChannelResultStoragePrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override { return _to GetChannelResultStoragePrincipal(aChannel, _retval); } \
  NS_IMETHOD GetChannelResultPrincipals(nsIChannel *aChannel, nsIPrincipal **aPrincipal, nsIPrincipal **aPartitionedPrincipal) override { return _to GetChannelResultPrincipals(aChannel, aPrincipal, aPartitionedPrincipal); } \
  virtual nsresult GetChannelResultPrincipalIfNotSandboxed(nsIChannel *aChannel, nsIPrincipal **_retval) override { return _to GetChannelResultPrincipalIfNotSandboxed(aChannel, _retval); } \
  NS_IMETHOD GetChannelURIPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override { return _to GetChannelURIPrincipal(aChannel, _retval); } \
  NS_IMETHOD ActivateDomainPolicy(nsIDomainPolicy **_retval) override { return _to ActivateDomainPolicy(_retval); } \
  NS_IMETHOD GetDomainPolicyActive(bool *aDomainPolicyActive) override { return _to GetDomainPolicyActive(aDomainPolicyActive); } \
  NS_IMETHOD ActivateDomainPolicyInternal(nsIDomainPolicy **_retval) override { return _to ActivateDomainPolicyInternal(_retval); } \
  NS_IMETHOD_(void) CloneDomainPolicy(mozilla::dom::DomainPolicyClone * aClone) override { return _to CloneDomainPolicy(aClone); } \
  NS_IMETHOD PolicyAllowsScript(nsIURI *aDomain, bool *_retval) override { return _to PolicyAllowsScript(aDomain, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSISCRIPTSECURITYMANAGER(_to) \
  NS_IMETHOD CanCreateWrapper(JSContext * aJSContext, const nsIID & aIID, nsISupports *aObj, nsIClassInfo *aClassInfo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CanCreateWrapper(aJSContext, aIID, aObj, aClassInfo); } \
  NS_IMETHOD CanCreateInstance(JSContext * aJSContext, const nsCID & aCID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CanCreateInstance(aJSContext, aCID); } \
  NS_IMETHOD CanGetService(JSContext * aJSContext, const nsCID & aCID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CanGetService(aJSContext, aCID); } \
  NS_IMETHOD CheckLoadURIFromScript(JSContext * cx, nsIURI *uri) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckLoadURIFromScript(cx, uri); } \
  NS_IMETHOD CheckLoadURIWithPrincipal(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckLoadURIWithPrincipal(aPrincipal, uri, flags, innerWindowID); } \
  NS_IMETHOD CheckLoadURIWithPrincipalFromJS(nsIPrincipal *aPrincipal, nsIURI *uri, uint32_t flags, uint64_t innerWindowID, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckLoadURIWithPrincipalFromJS(aPrincipal, uri, flags, innerWindowID, cx); } \
  NS_IMETHOD CheckLoadURIStrWithPrincipal(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckLoadURIStrWithPrincipal(aPrincipal, uri, flags); } \
  NS_IMETHOD CheckLoadURIStrWithPrincipalFromJS(nsIPrincipal *aPrincipal, const nsACString& uri, uint32_t flags, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckLoadURIStrWithPrincipalFromJS(aPrincipal, uri, flags, cx); } \
  NS_IMETHOD InFileURIAllowlist(nsIURI *aUri, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->InFileURIAllowlist(aUri, _retval); } \
  NS_IMETHOD GetSystemPrincipal(nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSystemPrincipal(_retval); } \
  NS_IMETHOD GetLoadContextContentPrincipal(nsIURI *uri, nsILoadContext *loadContext, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadContextContentPrincipal(uri, loadContext, _retval); } \
  NS_IMETHOD GetDocShellContentPrincipal(nsIURI *uri, nsIDocShell *docShell, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDocShellContentPrincipal(uri, docShell, _retval); } \
  NS_IMETHOD PrincipalWithOA(nsIPrincipal *principal, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PrincipalWithOA(principal, originAttributes, cx, _retval); } \
  NS_IMETHOD CreateContentPrincipal(nsIURI *uri, JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateContentPrincipal(uri, originAttributes, cx, _retval); } \
  NS_IMETHOD CreateContentPrincipalFromOrigin(const nsACString& origin, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateContentPrincipalFromOrigin(origin, _retval); } \
  NS_IMETHOD PrincipalToJSON(nsIPrincipal *principal, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PrincipalToJSON(principal, _retval); } \
  NS_IMETHOD JSONToPrincipal(const nsACString& json, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->JSONToPrincipal(json, _retval); } \
  NS_IMETHOD CreateNullPrincipal(JS::Handle<JS::Value> originAttributes, JSContext* cx, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNullPrincipal(originAttributes, cx, _retval); } \
  NS_IMETHOD CheckSameOriginURI(nsIURI *aSourceURI, nsIURI *aTargetURI, bool reportError, bool fromPrivateWindow) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckSameOriginURI(aSourceURI, aTargetURI, reportError, fromPrivateWindow); } \
  NS_IMETHOD GetChannelResultPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannelResultPrincipal(aChannel, _retval); } \
  NS_IMETHOD GetChannelResultStoragePrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannelResultStoragePrincipal(aChannel, _retval); } \
  NS_IMETHOD GetChannelResultPrincipals(nsIChannel *aChannel, nsIPrincipal **aPrincipal, nsIPrincipal **aPartitionedPrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannelResultPrincipals(aChannel, aPrincipal, aPartitionedPrincipal); } \
  virtual nsresult GetChannelResultPrincipalIfNotSandboxed(nsIChannel *aChannel, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannelResultPrincipalIfNotSandboxed(aChannel, _retval); } \
  NS_IMETHOD GetChannelURIPrincipal(nsIChannel *aChannel, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannelURIPrincipal(aChannel, _retval); } \
  NS_IMETHOD ActivateDomainPolicy(nsIDomainPolicy **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ActivateDomainPolicy(_retval); } \
  NS_IMETHOD GetDomainPolicyActive(bool *aDomainPolicyActive) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomainPolicyActive(aDomainPolicyActive); } \
  NS_IMETHOD ActivateDomainPolicyInternal(nsIDomainPolicy **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ActivateDomainPolicyInternal(_retval); } \
  NS_IMETHOD_(void) CloneDomainPolicy(mozilla::dom::DomainPolicyClone * aClone) override; \
  NS_IMETHOD PolicyAllowsScript(nsIURI *aDomain, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PolicyAllowsScript(aDomain, _retval); } 

// %{C++:338-338
#define NS_SCRIPTSECURITYMANAGER_CONTRACTID "@mozilla.org/scriptsecuritymanager;1"
// %}

#endif /* __gen_nsIScriptSecurityManager_h__ */
