/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/netwerk/cookie/nsICookieJarSettings.idl
 */

#ifndef __gen_nsICookieJarSettings_h__
#define __gen_nsICookieJarSettings_h__


#include "nsISupports.h"

#include "nsISerializable.h"

#include "nsTArray.h"

#include "mozilla/AlreadyAddRefed.h"
#include "mozilla/Assertions.h"
#include "mozilla/DebugOnly.h"

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

class nsIURI; /* forward declaration */


/* starting interface:    nsICookieJarSettings */
#define NS_ICOOKIEJARSETTINGS_IID_STR "3ec40331-7cf0-4b71-ba2a-2265aab8f6bc"

#define NS_ICOOKIEJARSETTINGS_IID \
  {0x3ec40331, 0x7cf0, 0x4b71, \
    { 0xba, 0x2a, 0x22, 0x65, 0xaa, 0xb8, 0xf6, 0xbc }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsICookieJarSettings) nsICookieJarSettings : public nsISerializable {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_ICOOKIEJARSETTINGS_IID)

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

  /* [infallible] readonly attribute unsigned long cookieBehavior; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_cookieBehavior)
  NS_IMETHOD GetCookieBehavior(uint32_t *aCookieBehavior) = 0;
  inline uint32_t  GetCookieBehavior()
  {
    uint32_t result;
    mozilla::DebugOnly<nsresult> rv = GetCookieBehavior(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] readonly attribute boolean isFirstPartyIsolated; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_isFirstPartyIsolated)
  NS_IMETHOD GetIsFirstPartyIsolated(bool *aIsFirstPartyIsolated) = 0;
  inline bool  GetIsFirstPartyIsolated()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetIsFirstPartyIsolated(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] readonly attribute boolean shouldResistFingerprinting; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_shouldResistFingerprinting)
  NS_IMETHOD GetShouldResistFingerprinting(bool *aShouldResistFingerprinting) = 0;
  inline bool  GetShouldResistFingerprinting()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetShouldResistFingerprinting(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] readonly attribute boolean rejectThirdPartyContexts; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_rejectThirdPartyContexts)
  NS_IMETHOD GetRejectThirdPartyContexts(bool *aRejectThirdPartyContexts) = 0;
  inline bool  GetRejectThirdPartyContexts()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetRejectThirdPartyContexts(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] readonly attribute boolean limitForeignContexts; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_limitForeignContexts)
  NS_IMETHOD GetLimitForeignContexts(bool *aLimitForeignContexts) = 0;
  inline bool  GetLimitForeignContexts()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetLimitForeignContexts(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] readonly attribute boolean blockingAllThirdPartyContexts; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_blockingAllThirdPartyContexts)
  NS_IMETHOD GetBlockingAllThirdPartyContexts(bool *aBlockingAllThirdPartyContexts) = 0;
  inline bool  GetBlockingAllThirdPartyContexts()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetBlockingAllThirdPartyContexts(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] readonly attribute boolean blockingAllContexts; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_blockingAllContexts)
  NS_IMETHOD GetBlockingAllContexts(bool *aBlockingAllContexts) = 0;
  inline bool  GetBlockingAllContexts()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetBlockingAllContexts(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* [infallible] attribute boolean partitionForeign; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_partitionForeign)
  NS_IMETHOD GetPartitionForeign(bool *aPartitionForeign) = 0;
  inline bool  GetPartitionForeign()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetPartitionForeign(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsICookieJarSettings_partitionForeign)
  NS_IMETHOD SetPartitionForeign(bool aPartitionForeign) = 0;

  /* [infallible] readonly attribute boolean isOnContentBlockingAllowList; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_isOnContentBlockingAllowList)
  NS_IMETHOD GetIsOnContentBlockingAllowList(bool *aIsOnContentBlockingAllowList) = 0;
  inline bool  GetIsOnContentBlockingAllowList()
  {
    bool result;
    mozilla::DebugOnly<nsresult> rv = GetIsOnContentBlockingAllowList(&result);
    MOZ_ASSERT(NS_SUCCEEDED(rv));
    return result;
  }

  /* readonly attribute AString partitionKey; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_partitionKey)
  NS_IMETHOD GetPartitionKey(nsAString& aPartitionKey) = 0;

  /* readonly attribute Array<uint8_t> fingerprintingRandomizationKey; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_fingerprintingRandomizationKey)
  NS_IMETHOD GetFingerprintingRandomizationKey(nsTArray<uint8_t >& aFingerprintingRandomizationKey) = 0;

  /* unsigned long cookiePermission (in nsIPrincipal aPrincipal); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsICookieJarSettings_cookiePermission)
  NS_IMETHOD CookiePermission(nsIPrincipal *aPrincipal, uint32_t *_retval) = 0;

  /* void initWithURI (in nsIURI aURI, in boolean aIsPrivate); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsICookieJarSettings_initWithURI)
  NS_IMETHOD InitWithURI(nsIURI *aURI, bool aIsPrivate) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSICOOKIEJARSETTINGS \
  using nsICookieJarSettings::GetCookieBehavior; \
  NS_IMETHOD GetCookieBehavior(uint32_t *aCookieBehavior) override; \
  using nsICookieJarSettings::GetIsFirstPartyIsolated; \
  NS_IMETHOD GetIsFirstPartyIsolated(bool *aIsFirstPartyIsolated) override; \
  using nsICookieJarSettings::GetShouldResistFingerprinting; \
  NS_IMETHOD GetShouldResistFingerprinting(bool *aShouldResistFingerprinting) override; \
  using nsICookieJarSettings::GetRejectThirdPartyContexts; \
  NS_IMETHOD GetRejectThirdPartyContexts(bool *aRejectThirdPartyContexts) override; \
  using nsICookieJarSettings::GetLimitForeignContexts; \
  NS_IMETHOD GetLimitForeignContexts(bool *aLimitForeignContexts) override; \
  using nsICookieJarSettings::GetBlockingAllThirdPartyContexts; \
  NS_IMETHOD GetBlockingAllThirdPartyContexts(bool *aBlockingAllThirdPartyContexts) override; \
  using nsICookieJarSettings::GetBlockingAllContexts; \
  NS_IMETHOD GetBlockingAllContexts(bool *aBlockingAllContexts) override; \
  using nsICookieJarSettings::GetPartitionForeign; \
  NS_IMETHOD GetPartitionForeign(bool *aPartitionForeign) override; \
  NS_IMETHOD SetPartitionForeign(bool aPartitionForeign) override; \
  using nsICookieJarSettings::GetIsOnContentBlockingAllowList; \
  NS_IMETHOD GetIsOnContentBlockingAllowList(bool *aIsOnContentBlockingAllowList) override; \
  NS_IMETHOD GetPartitionKey(nsAString& aPartitionKey) override; \
  NS_IMETHOD GetFingerprintingRandomizationKey(nsTArray<uint8_t >& aFingerprintingRandomizationKey) override; \
  NS_IMETHOD CookiePermission(nsIPrincipal *aPrincipal, uint32_t *_retval) override; \
  NS_IMETHOD InitWithURI(nsIURI *aURI, bool aIsPrivate) 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_NSICOOKIEJARSETTINGS \
  using nsICookieJarSettings::GetCookieBehavior; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_cookieBehavior)\
  nsresult GetCookieBehavior(uint32_t *aCookieBehavior); \
  using nsICookieJarSettings::GetIsFirstPartyIsolated; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_isFirstPartyIsolated)\
  nsresult GetIsFirstPartyIsolated(bool *aIsFirstPartyIsolated); \
  using nsICookieJarSettings::GetShouldResistFingerprinting; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_shouldResistFingerprinting)\
  nsresult GetShouldResistFingerprinting(bool *aShouldResistFingerprinting); \
  using nsICookieJarSettings::GetRejectThirdPartyContexts; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_rejectThirdPartyContexts)\
  nsresult GetRejectThirdPartyContexts(bool *aRejectThirdPartyContexts); \
  using nsICookieJarSettings::GetLimitForeignContexts; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_limitForeignContexts)\
  nsresult GetLimitForeignContexts(bool *aLimitForeignContexts); \
  using nsICookieJarSettings::GetBlockingAllThirdPartyContexts; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_blockingAllThirdPartyContexts)\
  nsresult GetBlockingAllThirdPartyContexts(bool *aBlockingAllThirdPartyContexts); \
  using nsICookieJarSettings::GetBlockingAllContexts; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_blockingAllContexts)\
  nsresult GetBlockingAllContexts(bool *aBlockingAllContexts); \
  using nsICookieJarSettings::GetPartitionForeign; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_partitionForeign)\
  nsresult GetPartitionForeign(bool *aPartitionForeign); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsICookieJarSettings_partitionForeign)\
  nsresult SetPartitionForeign(bool aPartitionForeign); \
  using nsICookieJarSettings::GetIsOnContentBlockingAllowList; \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_isOnContentBlockingAllowList)\
  nsresult GetIsOnContentBlockingAllowList(bool *aIsOnContentBlockingAllowList); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_partitionKey)\
  nsresult GetPartitionKey(nsAString& aPartitionKey); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsICookieJarSettings_fingerprintingRandomizationKey)\
  nsresult GetFingerprintingRandomizationKey(nsTArray<uint8_t >& aFingerprintingRandomizationKey); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsICookieJarSettings_cookiePermission)\
  nsresult CookiePermission(nsIPrincipal *aPrincipal, uint32_t *_retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsICookieJarSettings_initWithURI)\
  nsresult InitWithURI(nsIURI *aURI, bool aIsPrivate); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSICOOKIEJARSETTINGS(_to) \
  using nsICookieJarSettings::GetCookieBehavior; \
  NS_IMETHOD GetCookieBehavior(uint32_t *aCookieBehavior) override { return _to GetCookieBehavior(aCookieBehavior); } \
  using nsICookieJarSettings::GetIsFirstPartyIsolated; \
  NS_IMETHOD GetIsFirstPartyIsolated(bool *aIsFirstPartyIsolated) override { return _to GetIsFirstPartyIsolated(aIsFirstPartyIsolated); } \
  using nsICookieJarSettings::GetShouldResistFingerprinting; \
  NS_IMETHOD GetShouldResistFingerprinting(bool *aShouldResistFingerprinting) override { return _to GetShouldResistFingerprinting(aShouldResistFingerprinting); } \
  using nsICookieJarSettings::GetRejectThirdPartyContexts; \
  NS_IMETHOD GetRejectThirdPartyContexts(bool *aRejectThirdPartyContexts) override { return _to GetRejectThirdPartyContexts(aRejectThirdPartyContexts); } \
  using nsICookieJarSettings::GetLimitForeignContexts; \
  NS_IMETHOD GetLimitForeignContexts(bool *aLimitForeignContexts) override { return _to GetLimitForeignContexts(aLimitForeignContexts); } \
  using nsICookieJarSettings::GetBlockingAllThirdPartyContexts; \
  NS_IMETHOD GetBlockingAllThirdPartyContexts(bool *aBlockingAllThirdPartyContexts) override { return _to GetBlockingAllThirdPartyContexts(aBlockingAllThirdPartyContexts); } \
  using nsICookieJarSettings::GetBlockingAllContexts; \
  NS_IMETHOD GetBlockingAllContexts(bool *aBlockingAllContexts) override { return _to GetBlockingAllContexts(aBlockingAllContexts); } \
  using nsICookieJarSettings::GetPartitionForeign; \
  NS_IMETHOD GetPartitionForeign(bool *aPartitionForeign) override { return _to GetPartitionForeign(aPartitionForeign); } \
  NS_IMETHOD SetPartitionForeign(bool aPartitionForeign) override { return _to SetPartitionForeign(aPartitionForeign); } \
  using nsICookieJarSettings::GetIsOnContentBlockingAllowList; \
  NS_IMETHOD GetIsOnContentBlockingAllowList(bool *aIsOnContentBlockingAllowList) override { return _to GetIsOnContentBlockingAllowList(aIsOnContentBlockingAllowList); } \
  NS_IMETHOD GetPartitionKey(nsAString& aPartitionKey) override { return _to GetPartitionKey(aPartitionKey); } \
  NS_IMETHOD GetFingerprintingRandomizationKey(nsTArray<uint8_t >& aFingerprintingRandomizationKey) override { return _to GetFingerprintingRandomizationKey(aFingerprintingRandomizationKey); } \
  NS_IMETHOD CookiePermission(nsIPrincipal *aPrincipal, uint32_t *_retval) override { return _to CookiePermission(aPrincipal, _retval); } \
  NS_IMETHOD InitWithURI(nsIURI *aURI, bool aIsPrivate) override { return _to InitWithURI(aURI, aIsPrivate); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSICOOKIEJARSETTINGS(_to) \
  NS_IMETHOD GetCookieBehavior(uint32_t *aCookieBehavior) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCookieBehavior(aCookieBehavior); } \
  NS_IMETHOD GetIsFirstPartyIsolated(bool *aIsFirstPartyIsolated) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsFirstPartyIsolated(aIsFirstPartyIsolated); } \
  NS_IMETHOD GetShouldResistFingerprinting(bool *aShouldResistFingerprinting) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShouldResistFingerprinting(aShouldResistFingerprinting); } \
  NS_IMETHOD GetRejectThirdPartyContexts(bool *aRejectThirdPartyContexts) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRejectThirdPartyContexts(aRejectThirdPartyContexts); } \
  NS_IMETHOD GetLimitForeignContexts(bool *aLimitForeignContexts) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLimitForeignContexts(aLimitForeignContexts); } \
  NS_IMETHOD GetBlockingAllThirdPartyContexts(bool *aBlockingAllThirdPartyContexts) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlockingAllThirdPartyContexts(aBlockingAllThirdPartyContexts); } \
  NS_IMETHOD GetBlockingAllContexts(bool *aBlockingAllContexts) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlockingAllContexts(aBlockingAllContexts); } \
  NS_IMETHOD GetPartitionForeign(bool *aPartitionForeign) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPartitionForeign(aPartitionForeign); } \
  NS_IMETHOD SetPartitionForeign(bool aPartitionForeign) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPartitionForeign(aPartitionForeign); } \
  NS_IMETHOD GetIsOnContentBlockingAllowList(bool *aIsOnContentBlockingAllowList) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsOnContentBlockingAllowList(aIsOnContentBlockingAllowList); } \
  NS_IMETHOD GetPartitionKey(nsAString& aPartitionKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPartitionKey(aPartitionKey); } \
  NS_IMETHOD GetFingerprintingRandomizationKey(nsTArray<uint8_t >& aFingerprintingRandomizationKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFingerprintingRandomizationKey(aFingerprintingRandomizationKey); } \
  NS_IMETHOD CookiePermission(nsIPrincipal *aPrincipal, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CookiePermission(aPrincipal, _retval); } \
  NS_IMETHOD InitWithURI(nsIURI *aURI, bool aIsPrivate) override { return !_to ? NS_ERROR_NULL_POINTER : _to->InitWithURI(aURI, aIsPrivate); } 


#endif /* __gen_nsICookieJarSettings_h__ */
