Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/nsIPrincipal.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /src/mozilla-central/caps/nsIPrincipal.idl
3
 */
4
5
#ifndef __gen_nsIPrincipal_h__
6
#define __gen_nsIPrincipal_h__
7
8
9
#ifndef __gen_nsISerializable_h__
10
#include "nsISerializable.h"
11
#endif
12
13
#include "js/Value.h"
14
15
#include "mozilla/AlreadyAddRefed.h"
16
#include "mozilla/Assertions.h"
17
#include "mozilla/DebugOnly.h"
18
19
/* For IDL files that don't want to include root IDL files. */
20
#ifndef NS_NO_VTABLE
21
#define NS_NO_VTABLE
22
#endif
23
struct JSPrincipals;
24
#include "nsCOMPtr.h"
25
#include "nsTArray.h"
26
#include "mozilla/DebugOnly.h"
27
namespace mozilla {
28
class OriginAttributes;
29
}
30
/**
31
 * Some methods have a fast path for the case when we're comparing a principal
32
 * to itself. The situation may happen for example with about:blank documents.
33
 */
34
#define DECL_FAST_INLINE_HELPER(method_)                       \
35
  inline bool method_(nsIPrincipal* aOther)                    \
36
0
  {                                                            \
37
0
    mozilla::DebugOnly<bool> val = false;                      \
38
0
    MOZ_ASSERT_IF(this == aOther,                              \
39
0
                  NS_SUCCEEDED(method_(aOther, &val)) && val); \
40
0
                                                               \
41
0
    bool retVal = false;                                       \
42
0
    return                                                     \
43
0
      this == aOther ||                                        \
44
0
      (NS_SUCCEEDED(method_(aOther, &retVal)) && retVal);      \
45
0
  }
Unexecuted instantiation: nsIPrincipal::Equals(nsIPrincipal*)
Unexecuted instantiation: nsIPrincipal::EqualsConsideringDomain(nsIPrincipal*)
Unexecuted instantiation: nsIPrincipal::Subsumes(nsIPrincipal*)
Unexecuted instantiation: nsIPrincipal::SubsumesConsideringDomain(nsIPrincipal*)
Unexecuted instantiation: nsIPrincipal::SubsumesConsideringDomainIgnoringFPD(nsIPrincipal*)
46
class nsIURI; /* forward declaration */
47
48
class nsIContentSecurityPolicy; /* forward declaration */
49
50
class nsIDocument; /* webidl Document */
51
52
53
/* starting interface:    nsIPrincipal */
54
#define NS_IPRINCIPAL_IID_STR "f75f502d-79fd-48be-a079-e5a7b8f80c8b"
55
56
#define NS_IPRINCIPAL_IID \
57
  {0xf75f502d, 0x79fd, 0x48be, \
58
    { 0xa0, 0x79, 0xe5, 0xa7, 0xb8, 0xf8, 0x0c, 0x8b }}
59
60
class nsIPrincipal : public nsISerializable {
61
 public:
62
63
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPRINCIPAL_IID)
64
65
  /* boolean equals (in nsIPrincipal other); */
66
  NS_IMETHOD Equals(nsIPrincipal *other, bool *_retval) = 0;
67
68
  /* boolean equalsConsideringDomain (in nsIPrincipal other); */
69
  NS_IMETHOD EqualsConsideringDomain(nsIPrincipal *other, bool *_retval) = 0;
70
71
       DECL_FAST_INLINE_HELPER(Equals)
72
      DECL_FAST_INLINE_HELPER(EqualsConsideringDomain)
73
      /* [noscript] readonly attribute unsigned long hashValue; */
74
  NS_IMETHOD GetHashValue(uint32_t *aHashValue) = 0;
75
76
  /* readonly attribute nsIURI URI; */
77
  NS_IMETHOD GetURI(nsIURI **aURI) = 0;
78
79
  /* [noscript] attribute nsIURI domain; */
80
  NS_IMETHOD GetDomain(nsIURI **aDomain) = 0;
81
  NS_IMETHOD SetDomain(nsIURI *aDomain) = 0;
82
83
  /* boolean subsumes (in nsIPrincipal other); */
84
  NS_IMETHOD Subsumes(nsIPrincipal *other, bool *_retval) = 0;
85
86
  /* boolean subsumesConsideringDomain (in nsIPrincipal other); */
87
  NS_IMETHOD SubsumesConsideringDomain(nsIPrincipal *other, bool *_retval) = 0;
88
89
  /* boolean subsumesConsideringDomainIgnoringFPD (in nsIPrincipal other); */
90
  NS_IMETHOD SubsumesConsideringDomainIgnoringFPD(nsIPrincipal *other, bool *_retval) = 0;
91
92
       DECL_FAST_INLINE_HELPER(Subsumes)
93
      DECL_FAST_INLINE_HELPER(SubsumesConsideringDomain)
94
      DECL_FAST_INLINE_HELPER(SubsumesConsideringDomainIgnoringFPD)
95
#undef DECL_FAST_INLINE_HELPER
96
      /* void checkMayLoad (in nsIURI uri, in boolean report, in boolean allowIfInheritsPrincipal); */
97
  NS_IMETHOD CheckMayLoad(nsIURI *uri, bool report, bool allowIfInheritsPrincipal) = 0;
98
99
  /* [noscript] attribute nsIContentSecurityPolicy csp; */
100
  NS_IMETHOD GetCsp(nsIContentSecurityPolicy **aCsp) = 0;
101
  NS_IMETHOD SetCsp(nsIContentSecurityPolicy *aCsp) = 0;
102
103
  /* [noscript] nsIContentSecurityPolicy ensureCSP (in Document aDocument); */
104
  NS_IMETHOD EnsureCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) = 0;
105
106
  /* [noscript] readonly attribute nsIContentSecurityPolicy preloadCsp; */
107
  NS_IMETHOD GetPreloadCsp(nsIContentSecurityPolicy **aPreloadCsp) = 0;
108
109
  /* [noscript] nsIContentSecurityPolicy ensurePreloadCSP (in Document aDocument); */
110
  NS_IMETHOD EnsurePreloadCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) = 0;
111
112
  /* readonly attribute AString cspJSON; */
113
  NS_IMETHOD GetCspJSON(nsAString& aCspJSON) = 0;
114
115
  /* [implicit_jscontext] readonly attribute jsval originAttributes; */
116
  NS_IMETHOD GetOriginAttributes(JSContext* cx, JS::MutableHandleValue aOriginAttributes) = 0;
117
118
  /* [binaryname(OriginAttributesRef),noscript,nostdcall,notxpcom] const_OriginAttributes OriginAttributesRef (); */
119
  virtual const mozilla::OriginAttributes & OriginAttributesRef(void) = 0;
120
121
  /* readonly attribute ACString origin; */
122
  NS_IMETHOD GetOrigin(nsACString& aOrigin) = 0;
123
124
  /* readonly attribute ACString originNoSuffix; */
125
  NS_IMETHOD GetOriginNoSuffix(nsACString& aOriginNoSuffix) = 0;
126
127
  /* readonly attribute AUTF8String originSuffix; */
128
  NS_IMETHOD GetOriginSuffix(nsACString& aOriginSuffix) = 0;
129
130
  /* readonly attribute ACString siteOrigin; */
131
  NS_IMETHOD GetSiteOrigin(nsACString& aSiteOrigin) = 0;
132
133
  /* readonly attribute ACString baseDomain; */
134
  NS_IMETHOD GetBaseDomain(nsACString& aBaseDomain) = 0;
135
136
  /* [infallible] readonly attribute unsigned long appId; */
137
  NS_IMETHOD GetAppId(uint32_t *aAppId) = 0;
138
  inline uint32_t GetAppId()
139
0
  {
140
0
    uint32_t result;
141
0
    mozilla::DebugOnly<nsresult> rv = GetAppId(&result);
142
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
143
0
    return result;
144
0
  }
145
146
  /* readonly attribute AString addonId; */
147
  NS_IMETHOD GetAddonId(nsAString& aAddonId) = 0;
148
149
  /* readonly attribute nsISupports addonPolicy; */
150
  NS_IMETHOD GetAddonPolicy(nsISupports **aAddonPolicy) = 0;
151
152
  /* [infallible] readonly attribute unsigned long userContextId; */
153
  NS_IMETHOD GetUserContextId(uint32_t *aUserContextId) = 0;
154
  inline uint32_t GetUserContextId()
155
0
  {
156
0
    uint32_t result;
157
0
    mozilla::DebugOnly<nsresult> rv = GetUserContextId(&result);
158
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
159
0
    return result;
160
0
  }
161
162
  /* [infallible] readonly attribute unsigned long privateBrowsingId; */
163
  NS_IMETHOD GetPrivateBrowsingId(uint32_t *aPrivateBrowsingId) = 0;
164
  inline uint32_t GetPrivateBrowsingId()
165
0
  {
166
0
    uint32_t result;
167
0
    mozilla::DebugOnly<nsresult> rv = GetPrivateBrowsingId(&result);
168
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
169
0
    return result;
170
0
  }
171
172
  /* [infallible] readonly attribute boolean isInIsolatedMozBrowserElement; */
173
  NS_IMETHOD GetIsInIsolatedMozBrowserElement(bool *aIsInIsolatedMozBrowserElement) = 0;
174
  inline bool GetIsInIsolatedMozBrowserElement()
175
0
  {
176
0
    bool result;
177
0
    mozilla::DebugOnly<nsresult> rv = GetIsInIsolatedMozBrowserElement(&result);
178
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
179
0
    return result;
180
0
  }
181
182
  /* [infallible] readonly attribute boolean isNullPrincipal; */
183
  NS_IMETHOD GetIsNullPrincipal(bool *aIsNullPrincipal) = 0;
184
  inline bool GetIsNullPrincipal()
185
0
  {
186
0
    bool result;
187
0
    mozilla::DebugOnly<nsresult> rv = GetIsNullPrincipal(&result);
188
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
189
0
    return result;
190
0
  }
191
192
  /* [infallible] readonly attribute boolean isCodebasePrincipal; */
193
  NS_IMETHOD GetIsCodebasePrincipal(bool *aIsCodebasePrincipal) = 0;
194
  inline bool GetIsCodebasePrincipal()
195
0
  {
196
0
    bool result;
197
0
    mozilla::DebugOnly<nsresult> rv = GetIsCodebasePrincipal(&result);
198
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
199
0
    return result;
200
0
  }
201
202
  /* [infallible] readonly attribute boolean isExpandedPrincipal; */
203
  NS_IMETHOD GetIsExpandedPrincipal(bool *aIsExpandedPrincipal) = 0;
204
  inline bool GetIsExpandedPrincipal()
205
0
  {
206
0
    bool result;
207
0
    mozilla::DebugOnly<nsresult> rv = GetIsExpandedPrincipal(&result);
208
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
209
0
    return result;
210
0
  }
211
212
  /* [infallible] readonly attribute boolean isSystemPrincipal; */
213
  NS_IMETHOD GetIsSystemPrincipal(bool *aIsSystemPrincipal) = 0;
214
  inline bool GetIsSystemPrincipal()
215
5
  {
216
5
    bool result;
217
5
    mozilla::DebugOnly<nsresult> rv = GetIsSystemPrincipal(&result);
218
5
    MOZ_ASSERT(NS_SUCCEEDED(rv));
219
5
    return result;
220
5
  }
221
222
  /* [infallible] readonly attribute boolean isAddonOrExpandedAddonPrincipal; */
223
  NS_IMETHOD GetIsAddonOrExpandedAddonPrincipal(bool *aIsAddonOrExpandedAddonPrincipal) = 0;
224
  inline bool GetIsAddonOrExpandedAddonPrincipal()
225
0
  {
226
0
    bool result;
227
0
    mozilla::DebugOnly<nsresult> rv = GetIsAddonOrExpandedAddonPrincipal(&result);
228
0
    MOZ_ASSERT(NS_SUCCEEDED(rv));
229
0
    return result;
230
0
  }
231
232
};
233
234
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIPrincipal, NS_IPRINCIPAL_IID)
235
236
/* Use this macro when declaring classes that implement this interface. */
237
#define NS_DECL_NSIPRINCIPAL \
238
  NS_IMETHOD Equals(nsIPrincipal *other, bool *_retval) override; \
239
  NS_IMETHOD EqualsConsideringDomain(nsIPrincipal *other, bool *_retval) override; \
240
  NS_IMETHOD GetHashValue(uint32_t *aHashValue) override; \
241
  NS_IMETHOD GetURI(nsIURI **aURI) override; \
242
  NS_IMETHOD GetDomain(nsIURI **aDomain) override; \
243
  NS_IMETHOD SetDomain(nsIURI *aDomain) override; \
244
  NS_IMETHOD Subsumes(nsIPrincipal *other, bool *_retval) override; \
245
  NS_IMETHOD SubsumesConsideringDomain(nsIPrincipal *other, bool *_retval) override; \
246
  NS_IMETHOD SubsumesConsideringDomainIgnoringFPD(nsIPrincipal *other, bool *_retval) override; \
247
  NS_IMETHOD CheckMayLoad(nsIURI *uri, bool report, bool allowIfInheritsPrincipal) override; \
248
  NS_IMETHOD GetCsp(nsIContentSecurityPolicy **aCsp) override; \
249
  NS_IMETHOD SetCsp(nsIContentSecurityPolicy *aCsp) override; \
250
  NS_IMETHOD EnsureCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) override; \
251
  NS_IMETHOD GetPreloadCsp(nsIContentSecurityPolicy **aPreloadCsp) override; \
252
  NS_IMETHOD EnsurePreloadCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) override; \
253
  NS_IMETHOD GetCspJSON(nsAString& aCspJSON) override; \
254
  NS_IMETHOD GetOriginAttributes(JSContext* cx, JS::MutableHandleValue aOriginAttributes) override; \
255
  virtual const mozilla::OriginAttributes & OriginAttributesRef(void) override; \
256
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override; \
257
  NS_IMETHOD GetOriginNoSuffix(nsACString& aOriginNoSuffix) override; \
258
  NS_IMETHOD GetOriginSuffix(nsACString& aOriginSuffix) override; \
259
  NS_IMETHOD GetSiteOrigin(nsACString& aSiteOrigin) override; \
260
  NS_IMETHOD GetBaseDomain(nsACString& aBaseDomain) override; \
261
  using nsIPrincipal::GetAppId; \
262
  NS_IMETHOD GetAppId(uint32_t *aAppId) override; \
263
  NS_IMETHOD GetAddonId(nsAString& aAddonId) override; \
264
  NS_IMETHOD GetAddonPolicy(nsISupports **aAddonPolicy) override; \
265
  using nsIPrincipal::GetUserContextId; \
266
  NS_IMETHOD GetUserContextId(uint32_t *aUserContextId) override; \
267
  using nsIPrincipal::GetPrivateBrowsingId; \
268
  NS_IMETHOD GetPrivateBrowsingId(uint32_t *aPrivateBrowsingId) override; \
269
  using nsIPrincipal::GetIsInIsolatedMozBrowserElement; \
270
  NS_IMETHOD GetIsInIsolatedMozBrowserElement(bool *aIsInIsolatedMozBrowserElement) override; \
271
  using nsIPrincipal::GetIsNullPrincipal; \
272
  NS_IMETHOD GetIsNullPrincipal(bool *aIsNullPrincipal) override; \
273
  using nsIPrincipal::GetIsCodebasePrincipal; \
274
  NS_IMETHOD GetIsCodebasePrincipal(bool *aIsCodebasePrincipal) override; \
275
  using nsIPrincipal::GetIsExpandedPrincipal; \
276
  NS_IMETHOD GetIsExpandedPrincipal(bool *aIsExpandedPrincipal) override; \
277
  using nsIPrincipal::GetIsSystemPrincipal; \
278
  NS_IMETHOD GetIsSystemPrincipal(bool *aIsSystemPrincipal) override; \
279
  using nsIPrincipal::GetIsAddonOrExpandedAddonPrincipal; \
280
  NS_IMETHOD GetIsAddonOrExpandedAddonPrincipal(bool *aIsAddonOrExpandedAddonPrincipal) override; 
281
282
/* Use this macro when declaring the members of this interface when the
283
   class doesn't implement the interface. This is useful for forwarding. */
284
#define NS_DECL_NON_VIRTUAL_NSIPRINCIPAL \
285
  nsresult Equals(nsIPrincipal *other, bool *_retval); \
286
  nsresult EqualsConsideringDomain(nsIPrincipal *other, bool *_retval); \
287
  nsresult GetHashValue(uint32_t *aHashValue); \
288
  nsresult GetURI(nsIURI **aURI); \
289
  nsresult GetDomain(nsIURI **aDomain); \
290
  nsresult SetDomain(nsIURI *aDomain); \
291
  nsresult Subsumes(nsIPrincipal *other, bool *_retval); \
292
  nsresult SubsumesConsideringDomain(nsIPrincipal *other, bool *_retval); \
293
  nsresult SubsumesConsideringDomainIgnoringFPD(nsIPrincipal *other, bool *_retval); \
294
  nsresult CheckMayLoad(nsIURI *uri, bool report, bool allowIfInheritsPrincipal); \
295
  nsresult GetCsp(nsIContentSecurityPolicy **aCsp); \
296
  nsresult SetCsp(nsIContentSecurityPolicy *aCsp); \
297
  nsresult EnsureCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval); \
298
  nsresult GetPreloadCsp(nsIContentSecurityPolicy **aPreloadCsp); \
299
  nsresult EnsurePreloadCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval); \
300
  nsresult GetCspJSON(nsAString& aCspJSON); \
301
  nsresult GetOriginAttributes(JSContext* cx, JS::MutableHandleValue aOriginAttributes); \
302
  const mozilla::OriginAttributes & OriginAttributesRef(void); \
303
  nsresult GetOrigin(nsACString& aOrigin); \
304
  nsresult GetOriginNoSuffix(nsACString& aOriginNoSuffix); \
305
  nsresult GetOriginSuffix(nsACString& aOriginSuffix); \
306
  nsresult GetSiteOrigin(nsACString& aSiteOrigin); \
307
  nsresult GetBaseDomain(nsACString& aBaseDomain); \
308
  using nsIPrincipal::GetAppId; \
309
  nsresult GetAppId(uint32_t *aAppId); \
310
  nsresult GetAddonId(nsAString& aAddonId); \
311
  nsresult GetAddonPolicy(nsISupports **aAddonPolicy); \
312
  using nsIPrincipal::GetUserContextId; \
313
  nsresult GetUserContextId(uint32_t *aUserContextId); \
314
  using nsIPrincipal::GetPrivateBrowsingId; \
315
  nsresult GetPrivateBrowsingId(uint32_t *aPrivateBrowsingId); \
316
  using nsIPrincipal::GetIsInIsolatedMozBrowserElement; \
317
  nsresult GetIsInIsolatedMozBrowserElement(bool *aIsInIsolatedMozBrowserElement); \
318
  using nsIPrincipal::GetIsNullPrincipal; \
319
  nsresult GetIsNullPrincipal(bool *aIsNullPrincipal); \
320
  using nsIPrincipal::GetIsCodebasePrincipal; \
321
  nsresult GetIsCodebasePrincipal(bool *aIsCodebasePrincipal); \
322
  using nsIPrincipal::GetIsExpandedPrincipal; \
323
  nsresult GetIsExpandedPrincipal(bool *aIsExpandedPrincipal); \
324
  using nsIPrincipal::GetIsSystemPrincipal; \
325
  nsresult GetIsSystemPrincipal(bool *aIsSystemPrincipal); \
326
  using nsIPrincipal::GetIsAddonOrExpandedAddonPrincipal; \
327
  nsresult GetIsAddonOrExpandedAddonPrincipal(bool *aIsAddonOrExpandedAddonPrincipal); 
328
329
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
330
#define NS_FORWARD_NSIPRINCIPAL(_to) \
331
  NS_IMETHOD Equals(nsIPrincipal *other, bool *_retval) override { return _to Equals(other, _retval); } \
332
  NS_IMETHOD EqualsConsideringDomain(nsIPrincipal *other, bool *_retval) override { return _to EqualsConsideringDomain(other, _retval); } \
333
  NS_IMETHOD GetHashValue(uint32_t *aHashValue) override { return _to GetHashValue(aHashValue); } \
334
  NS_IMETHOD GetURI(nsIURI **aURI) override { return _to GetURI(aURI); } \
335
  NS_IMETHOD GetDomain(nsIURI **aDomain) override { return _to GetDomain(aDomain); } \
336
  NS_IMETHOD SetDomain(nsIURI *aDomain) override { return _to SetDomain(aDomain); } \
337
  NS_IMETHOD Subsumes(nsIPrincipal *other, bool *_retval) override { return _to Subsumes(other, _retval); } \
338
  NS_IMETHOD SubsumesConsideringDomain(nsIPrincipal *other, bool *_retval) override { return _to SubsumesConsideringDomain(other, _retval); } \
339
  NS_IMETHOD SubsumesConsideringDomainIgnoringFPD(nsIPrincipal *other, bool *_retval) override { return _to SubsumesConsideringDomainIgnoringFPD(other, _retval); } \
340
  NS_IMETHOD CheckMayLoad(nsIURI *uri, bool report, bool allowIfInheritsPrincipal) override { return _to CheckMayLoad(uri, report, allowIfInheritsPrincipal); } \
341
  NS_IMETHOD GetCsp(nsIContentSecurityPolicy **aCsp) override { return _to GetCsp(aCsp); } \
342
  NS_IMETHOD SetCsp(nsIContentSecurityPolicy *aCsp) override { return _to SetCsp(aCsp); } \
343
  NS_IMETHOD EnsureCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) override { return _to EnsureCSP(aDocument, _retval); } \
344
  NS_IMETHOD GetPreloadCsp(nsIContentSecurityPolicy **aPreloadCsp) override { return _to GetPreloadCsp(aPreloadCsp); } \
345
  NS_IMETHOD EnsurePreloadCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) override { return _to EnsurePreloadCSP(aDocument, _retval); } \
346
  NS_IMETHOD GetCspJSON(nsAString& aCspJSON) override { return _to GetCspJSON(aCspJSON); } \
347
  NS_IMETHOD GetOriginAttributes(JSContext* cx, JS::MutableHandleValue aOriginAttributes) override { return _to GetOriginAttributes(cx, aOriginAttributes); } \
348
  virtual const mozilla::OriginAttributes & OriginAttributesRef(void) override { return _to OriginAttributesRef(); } \
349
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override { return _to GetOrigin(aOrigin); } \
350
  NS_IMETHOD GetOriginNoSuffix(nsACString& aOriginNoSuffix) override { return _to GetOriginNoSuffix(aOriginNoSuffix); } \
351
  NS_IMETHOD GetOriginSuffix(nsACString& aOriginSuffix) override { return _to GetOriginSuffix(aOriginSuffix); } \
352
  NS_IMETHOD GetSiteOrigin(nsACString& aSiteOrigin) override { return _to GetSiteOrigin(aSiteOrigin); } \
353
  NS_IMETHOD GetBaseDomain(nsACString& aBaseDomain) override { return _to GetBaseDomain(aBaseDomain); } \
354
  using nsIPrincipal::GetAppId; \
355
  NS_IMETHOD GetAppId(uint32_t *aAppId) override { return _to GetAppId(aAppId); } \
356
  NS_IMETHOD GetAddonId(nsAString& aAddonId) override { return _to GetAddonId(aAddonId); } \
357
  NS_IMETHOD GetAddonPolicy(nsISupports **aAddonPolicy) override { return _to GetAddonPolicy(aAddonPolicy); } \
358
  using nsIPrincipal::GetUserContextId; \
359
  NS_IMETHOD GetUserContextId(uint32_t *aUserContextId) override { return _to GetUserContextId(aUserContextId); } \
360
  using nsIPrincipal::GetPrivateBrowsingId; \
361
  NS_IMETHOD GetPrivateBrowsingId(uint32_t *aPrivateBrowsingId) override { return _to GetPrivateBrowsingId(aPrivateBrowsingId); } \
362
  using nsIPrincipal::GetIsInIsolatedMozBrowserElement; \
363
  NS_IMETHOD GetIsInIsolatedMozBrowserElement(bool *aIsInIsolatedMozBrowserElement) override { return _to GetIsInIsolatedMozBrowserElement(aIsInIsolatedMozBrowserElement); } \
364
  using nsIPrincipal::GetIsNullPrincipal; \
365
  NS_IMETHOD GetIsNullPrincipal(bool *aIsNullPrincipal) override { return _to GetIsNullPrincipal(aIsNullPrincipal); } \
366
  using nsIPrincipal::GetIsCodebasePrincipal; \
367
  NS_IMETHOD GetIsCodebasePrincipal(bool *aIsCodebasePrincipal) override { return _to GetIsCodebasePrincipal(aIsCodebasePrincipal); } \
368
  using nsIPrincipal::GetIsExpandedPrincipal; \
369
  NS_IMETHOD GetIsExpandedPrincipal(bool *aIsExpandedPrincipal) override { return _to GetIsExpandedPrincipal(aIsExpandedPrincipal); } \
370
  using nsIPrincipal::GetIsSystemPrincipal; \
371
  NS_IMETHOD GetIsSystemPrincipal(bool *aIsSystemPrincipal) override { return _to GetIsSystemPrincipal(aIsSystemPrincipal); } \
372
  using nsIPrincipal::GetIsAddonOrExpandedAddonPrincipal; \
373
  NS_IMETHOD GetIsAddonOrExpandedAddonPrincipal(bool *aIsAddonOrExpandedAddonPrincipal) override { return _to GetIsAddonOrExpandedAddonPrincipal(aIsAddonOrExpandedAddonPrincipal); } 
374
375
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
376
#define NS_FORWARD_SAFE_NSIPRINCIPAL(_to) \
377
  NS_IMETHOD Equals(nsIPrincipal *other, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Equals(other, _retval); } \
378
  NS_IMETHOD EqualsConsideringDomain(nsIPrincipal *other, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EqualsConsideringDomain(other, _retval); } \
379
  NS_IMETHOD GetHashValue(uint32_t *aHashValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHashValue(aHashValue); } \
380
  NS_IMETHOD GetURI(nsIURI **aURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetURI(aURI); } \
381
  NS_IMETHOD GetDomain(nsIURI **aDomain) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomain(aDomain); } \
382
  NS_IMETHOD SetDomain(nsIURI *aDomain) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDomain(aDomain); } \
383
  NS_IMETHOD Subsumes(nsIPrincipal *other, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Subsumes(other, _retval); } \
384
  NS_IMETHOD SubsumesConsideringDomain(nsIPrincipal *other, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SubsumesConsideringDomain(other, _retval); } \
385
  NS_IMETHOD SubsumesConsideringDomainIgnoringFPD(nsIPrincipal *other, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SubsumesConsideringDomainIgnoringFPD(other, _retval); } \
386
  NS_IMETHOD CheckMayLoad(nsIURI *uri, bool report, bool allowIfInheritsPrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckMayLoad(uri, report, allowIfInheritsPrincipal); } \
387
  NS_IMETHOD GetCsp(nsIContentSecurityPolicy **aCsp) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCsp(aCsp); } \
388
  NS_IMETHOD SetCsp(nsIContentSecurityPolicy *aCsp) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCsp(aCsp); } \
389
  NS_IMETHOD EnsureCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EnsureCSP(aDocument, _retval); } \
390
  NS_IMETHOD GetPreloadCsp(nsIContentSecurityPolicy **aPreloadCsp) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPreloadCsp(aPreloadCsp); } \
391
  NS_IMETHOD EnsurePreloadCSP(nsIDocument *aDocument, nsIContentSecurityPolicy **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EnsurePreloadCSP(aDocument, _retval); } \
392
  NS_IMETHOD GetCspJSON(nsAString& aCspJSON) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCspJSON(aCspJSON); } \
393
  NS_IMETHOD GetOriginAttributes(JSContext* cx, JS::MutableHandleValue aOriginAttributes) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginAttributes(cx, aOriginAttributes); } \
394
  virtual const mozilla::OriginAttributes & OriginAttributesRef(void) override; \
395
  NS_IMETHOD GetOrigin(nsACString& aOrigin) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrigin(aOrigin); } \
396
  NS_IMETHOD GetOriginNoSuffix(nsACString& aOriginNoSuffix) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginNoSuffix(aOriginNoSuffix); } \
397
  NS_IMETHOD GetOriginSuffix(nsACString& aOriginSuffix) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginSuffix(aOriginSuffix); } \
398
  NS_IMETHOD GetSiteOrigin(nsACString& aSiteOrigin) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSiteOrigin(aSiteOrigin); } \
399
  NS_IMETHOD GetBaseDomain(nsACString& aBaseDomain) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseDomain(aBaseDomain); } \
400
  NS_IMETHOD GetAppId(uint32_t *aAppId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAppId(aAppId); } \
401
  NS_IMETHOD GetAddonId(nsAString& aAddonId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddonId(aAddonId); } \
402
  NS_IMETHOD GetAddonPolicy(nsISupports **aAddonPolicy) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddonPolicy(aAddonPolicy); } \
403
  NS_IMETHOD GetUserContextId(uint32_t *aUserContextId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserContextId(aUserContextId); } \
404
  NS_IMETHOD GetPrivateBrowsingId(uint32_t *aPrivateBrowsingId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrivateBrowsingId(aPrivateBrowsingId); } \
405
  NS_IMETHOD GetIsInIsolatedMozBrowserElement(bool *aIsInIsolatedMozBrowserElement) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsInIsolatedMozBrowserElement(aIsInIsolatedMozBrowserElement); } \
406
  NS_IMETHOD GetIsNullPrincipal(bool *aIsNullPrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsNullPrincipal(aIsNullPrincipal); } \
407
  NS_IMETHOD GetIsCodebasePrincipal(bool *aIsCodebasePrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCodebasePrincipal(aIsCodebasePrincipal); } \
408
  NS_IMETHOD GetIsExpandedPrincipal(bool *aIsExpandedPrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsExpandedPrincipal(aIsExpandedPrincipal); } \
409
  NS_IMETHOD GetIsSystemPrincipal(bool *aIsSystemPrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsSystemPrincipal(aIsSystemPrincipal); } \
410
  NS_IMETHOD GetIsAddonOrExpandedAddonPrincipal(bool *aIsAddonOrExpandedAddonPrincipal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsAddonOrExpandedAddonPrincipal(aIsAddonOrExpandedAddonPrincipal); } 
411
412
413
/* starting interface:    nsIExpandedPrincipal */
414
#define NS_IEXPANDEDPRINCIPAL_IID_STR "f3e177df-6a5e-489f-80a7-2dd1481471d8"
415
416
#define NS_IEXPANDEDPRINCIPAL_IID \
417
  {0xf3e177df, 0x6a5e, 0x489f, \
418
    { 0x80, 0xa7, 0x2d, 0xd1, 0x48, 0x14, 0x71, 0xd8 }}
419
420
class NS_NO_VTABLE nsIExpandedPrincipal : public nsISupports {
421
 public:
422
423
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IEXPANDEDPRINCIPAL_IID)
424
425
  /* [noscript,nostdcall,notxpcom] PrincipalArray WhiteList (); */
426
  virtual const nsTArray<nsCOMPtr<nsIPrincipal>> & WhiteList(void) = 0;
427
428
};
429
430
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIExpandedPrincipal, NS_IEXPANDEDPRINCIPAL_IID)
431
432
/* Use this macro when declaring classes that implement this interface. */
433
#define NS_DECL_NSIEXPANDEDPRINCIPAL \
434
  virtual const nsTArray<nsCOMPtr<nsIPrincipal>> & WhiteList(void) override; 
435
436
/* Use this macro when declaring the members of this interface when the
437
   class doesn't implement the interface. This is useful for forwarding. */
438
#define NS_DECL_NON_VIRTUAL_NSIEXPANDEDPRINCIPAL \
439
  const nsTArray<nsCOMPtr<nsIPrincipal>> & WhiteList(void); 
440
441
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
442
#define NS_FORWARD_NSIEXPANDEDPRINCIPAL(_to) \
443
  virtual const nsTArray<nsCOMPtr<nsIPrincipal>> & WhiteList(void) override { return _to WhiteList(); } 
444
445
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
446
#define NS_FORWARD_SAFE_NSIEXPANDEDPRINCIPAL(_to) \
447
  virtual const nsTArray<nsCOMPtr<nsIPrincipal>> & WhiteList(void) override; 
448
449
450
#endif /* __gen_nsIPrincipal_h__ */