Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/xpccomponents.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /src/mozilla-central/js/xpconnect/idl/xpccomponents.idl
3
 */
4
5
#ifndef __gen_xpccomponents_h__
6
#define __gen_xpccomponents_h__
7
8
9
#ifndef __gen_nsISupports_h__
10
#include "nsISupports.h"
11
#endif
12
13
#include "js/Value.h"
14
15
#include "js/GCAnnotations.h"
16
17
/* For IDL files that don't want to include root IDL files. */
18
#ifndef NS_NO_VTABLE
19
#define NS_NO_VTABLE
20
#endif
21
#include "jspubtd.h"
22
class xpcIJSWeakReference; /* forward declaration */
23
24
class nsIClassInfo; /* forward declaration */
25
26
class nsICommandParams; /* forward declaration */
27
28
class nsIComponentManager; /* forward declaration */
29
30
class nsICycleCollectorListener; /* forward declaration */
31
32
class nsIEditorSpellCheck; /* forward declaration */
33
34
class nsIFile; /* forward declaration */
35
36
class nsILoadContext; /* forward declaration */
37
38
class nsIPersistentProperties; /* forward declaration */
39
40
class nsIURI; /* forward declaration */
41
42
class nsIJSCID; /* forward declaration */
43
44
class nsIJSIID; /* forward declaration */
45
46
class nsIPrincipal; /* forward declaration */
47
48
class nsIStackFrame; /* forward declaration */
49
50
namespace mozilla {
51
namespace dom {
52
class Element; /* webidl Element */
53
} // namespace dom
54
} // namespace mozilla
55
56
57
/* starting interface:    nsIXPCComponents_InterfacesByID */
58
#define NS_IXPCCOMPONENTS_INTERFACESBYID_IID_STR "f235ef76-9919-478b-aa0f-282d994ddf76"
59
60
#define NS_IXPCCOMPONENTS_INTERFACESBYID_IID \
61
  {0xf235ef76, 0x9919, 0x478b, \
62
    { 0xaa, 0x0f, 0x28, 0x2d, 0x99, 0x4d, 0xdf, 0x76 }}
63
64
class NS_NO_VTABLE nsIXPCComponents_InterfacesByID : public nsISupports {
65
 public:
66
67
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_INTERFACESBYID_IID)
68
69
};
70
71
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_InterfacesByID, NS_IXPCCOMPONENTS_INTERFACESBYID_IID)
72
73
/* Use this macro when declaring classes that implement this interface. */
74
#define NS_DECL_NSIXPCCOMPONENTS_INTERFACESBYID \
75
  /* no methods! */
76
77
/* Use this macro when declaring the members of this interface when the
78
   class doesn't implement the interface. This is useful for forwarding. */
79
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_INTERFACESBYID \
80
  /* no methods! */
81
82
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
83
#define NS_FORWARD_NSIXPCCOMPONENTS_INTERFACESBYID(_to) \
84
  /* no methods! */
85
86
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
87
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_INTERFACESBYID(_to) \
88
  /* no methods! */
89
90
91
/* starting interface:    nsIXPCComponents_Interfaces */
92
#define NS_IXPCCOMPONENTS_INTERFACES_IID_STR "b8c31bba-79db-4a1d-930d-4cdd68713f9e"
93
94
#define NS_IXPCCOMPONENTS_INTERFACES_IID \
95
  {0xb8c31bba, 0x79db, 0x4a1d, \
96
    { 0x93, 0x0d, 0x4c, 0xdd, 0x68, 0x71, 0x3f, 0x9e }}
97
98
class NS_NO_VTABLE nsIXPCComponents_Interfaces : public nsISupports {
99
 public:
100
101
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_INTERFACES_IID)
102
103
};
104
105
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_Interfaces, NS_IXPCCOMPONENTS_INTERFACES_IID)
106
107
/* Use this macro when declaring classes that implement this interface. */
108
#define NS_DECL_NSIXPCCOMPONENTS_INTERFACES \
109
  /* no methods! */
110
111
/* Use this macro when declaring the members of this interface when the
112
   class doesn't implement the interface. This is useful for forwarding. */
113
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_INTERFACES \
114
  /* no methods! */
115
116
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
117
#define NS_FORWARD_NSIXPCCOMPONENTS_INTERFACES(_to) \
118
  /* no methods! */
119
120
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
121
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_INTERFACES(_to) \
122
  /* no methods! */
123
124
125
/* starting interface:    nsIXPCComponents_Classes */
126
#define NS_IXPCCOMPONENTS_CLASSES_IID_STR "978ff520-d26c-11d2-9842-006008962422"
127
128
#define NS_IXPCCOMPONENTS_CLASSES_IID \
129
  {0x978ff520, 0xd26c, 0x11d2, \
130
    { 0x98, 0x42, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}
131
132
class NS_NO_VTABLE nsIXPCComponents_Classes : public nsISupports {
133
 public:
134
135
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_CLASSES_IID)
136
137
  /* void initialize (in nsIJSCID cid, in string idString); */
138
  NS_IMETHOD Initialize(nsIJSCID *cid, const char * idString) = 0;
139
140
};
141
142
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_Classes, NS_IXPCCOMPONENTS_CLASSES_IID)
143
144
/* Use this macro when declaring classes that implement this interface. */
145
#define NS_DECL_NSIXPCCOMPONENTS_CLASSES \
146
  NS_IMETHOD Initialize(nsIJSCID *cid, const char * idString) override; 
147
148
/* Use this macro when declaring the members of this interface when the
149
   class doesn't implement the interface. This is useful for forwarding. */
150
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_CLASSES \
151
  nsresult Initialize(nsIJSCID *cid, const char * idString); 
152
153
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
154
#define NS_FORWARD_NSIXPCCOMPONENTS_CLASSES(_to) \
155
  NS_IMETHOD Initialize(nsIJSCID *cid, const char * idString) override { return _to Initialize(cid, idString); } 
156
157
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
158
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_CLASSES(_to) \
159
  NS_IMETHOD Initialize(nsIJSCID *cid, const char * idString) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(cid, idString); } 
160
161
162
/* starting interface:    nsIXPCComponents_ClassesByID */
163
#define NS_IXPCCOMPONENTS_CLASSESBYID_IID_STR "336a9590-4d19-11d3-9893-006008962422"
164
165
#define NS_IXPCCOMPONENTS_CLASSESBYID_IID \
166
  {0x336a9590, 0x4d19, 0x11d3, \
167
    { 0x98, 0x93, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}
168
169
class NS_NO_VTABLE nsIXPCComponents_ClassesByID : public nsISupports {
170
 public:
171
172
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_CLASSESBYID_IID)
173
174
};
175
176
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_ClassesByID, NS_IXPCCOMPONENTS_CLASSESBYID_IID)
177
178
/* Use this macro when declaring classes that implement this interface. */
179
#define NS_DECL_NSIXPCCOMPONENTS_CLASSESBYID \
180
  /* no methods! */
181
182
/* Use this macro when declaring the members of this interface when the
183
   class doesn't implement the interface. This is useful for forwarding. */
184
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_CLASSESBYID \
185
  /* no methods! */
186
187
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
188
#define NS_FORWARD_NSIXPCCOMPONENTS_CLASSESBYID(_to) \
189
  /* no methods! */
190
191
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
192
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_CLASSESBYID(_to) \
193
  /* no methods! */
194
195
196
/* starting interface:    nsIXPCComponents_Results */
197
#define NS_IXPCCOMPONENTS_RESULTS_IID_STR "2fc229a0-5860-11d3-9899-006008962422"
198
199
#define NS_IXPCCOMPONENTS_RESULTS_IID \
200
  {0x2fc229a0, 0x5860, 0x11d3, \
201
    { 0x98, 0x99, 0x00, 0x60, 0x08, 0x96, 0x24, 0x22 }}
202
203
class NS_NO_VTABLE nsIXPCComponents_Results : public nsISupports {
204
 public:
205
206
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_RESULTS_IID)
207
208
};
209
210
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_Results, NS_IXPCCOMPONENTS_RESULTS_IID)
211
212
/* Use this macro when declaring classes that implement this interface. */
213
#define NS_DECL_NSIXPCCOMPONENTS_RESULTS \
214
  /* no methods! */
215
216
/* Use this macro when declaring the members of this interface when the
217
   class doesn't implement the interface. This is useful for forwarding. */
218
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_RESULTS \
219
  /* no methods! */
220
221
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
222
#define NS_FORWARD_NSIXPCCOMPONENTS_RESULTS(_to) \
223
  /* no methods! */
224
225
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
226
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_RESULTS(_to) \
227
  /* no methods! */
228
229
230
/* starting interface:    nsIXPCComponents_ID */
231
#define NS_IXPCCOMPONENTS_ID_IID_STR "7994a6e0-e028-11d3-8f5d-0010a4e73d9a"
232
233
#define NS_IXPCCOMPONENTS_ID_IID \
234
  {0x7994a6e0, 0xe028, 0x11d3, \
235
    { 0x8f, 0x5d, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }}
236
237
class NS_NO_VTABLE nsIXPCComponents_ID : public nsISupports {
238
 public:
239
240
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_ID_IID)
241
242
};
243
244
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_ID, NS_IXPCCOMPONENTS_ID_IID)
245
246
/* Use this macro when declaring classes that implement this interface. */
247
#define NS_DECL_NSIXPCCOMPONENTS_ID \
248
  /* no methods! */
249
250
/* Use this macro when declaring the members of this interface when the
251
   class doesn't implement the interface. This is useful for forwarding. */
252
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_ID \
253
  /* no methods! */
254
255
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
256
#define NS_FORWARD_NSIXPCCOMPONENTS_ID(_to) \
257
  /* no methods! */
258
259
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
260
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_ID(_to) \
261
  /* no methods! */
262
263
264
/* starting interface:    nsIXPCComponents_Exception */
265
#define NS_IXPCCOMPONENTS_EXCEPTION_IID_STR "5bf039c0-e028-11d3-8f5d-0010a4e73d9a"
266
267
#define NS_IXPCCOMPONENTS_EXCEPTION_IID \
268
  {0x5bf039c0, 0xe028, 0x11d3, \
269
    { 0x8f, 0x5d, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }}
270
271
class NS_NO_VTABLE nsIXPCComponents_Exception : public nsISupports {
272
 public:
273
274
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_EXCEPTION_IID)
275
276
};
277
278
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_Exception, NS_IXPCCOMPONENTS_EXCEPTION_IID)
279
280
/* Use this macro when declaring classes that implement this interface. */
281
#define NS_DECL_NSIXPCCOMPONENTS_EXCEPTION \
282
  /* no methods! */
283
284
/* Use this macro when declaring the members of this interface when the
285
   class doesn't implement the interface. This is useful for forwarding. */
286
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_EXCEPTION \
287
  /* no methods! */
288
289
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
290
#define NS_FORWARD_NSIXPCCOMPONENTS_EXCEPTION(_to) \
291
  /* no methods! */
292
293
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
294
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_EXCEPTION(_to) \
295
  /* no methods! */
296
297
298
/* starting interface:    nsIXPCComponents_Constructor */
299
#define NS_IXPCCOMPONENTS_CONSTRUCTOR_IID_STR "88655640-e028-11d3-8f5d-0010a4e73d9a"
300
301
#define NS_IXPCCOMPONENTS_CONSTRUCTOR_IID \
302
  {0x88655640, 0xe028, 0x11d3, \
303
    { 0x8f, 0x5d, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }}
304
305
class NS_NO_VTABLE nsIXPCComponents_Constructor : public nsISupports {
306
 public:
307
308
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_CONSTRUCTOR_IID)
309
310
};
311
312
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_Constructor, NS_IXPCCOMPONENTS_CONSTRUCTOR_IID)
313
314
/* Use this macro when declaring classes that implement this interface. */
315
#define NS_DECL_NSIXPCCOMPONENTS_CONSTRUCTOR \
316
  /* no methods! */
317
318
/* Use this macro when declaring the members of this interface when the
319
   class doesn't implement the interface. This is useful for forwarding. */
320
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_CONSTRUCTOR \
321
  /* no methods! */
322
323
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
324
#define NS_FORWARD_NSIXPCCOMPONENTS_CONSTRUCTOR(_to) \
325
  /* no methods! */
326
327
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
328
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_CONSTRUCTOR(_to) \
329
  /* no methods! */
330
331
332
/* starting interface:    nsIXPCConstructor */
333
#define NS_IXPCCONSTRUCTOR_IID_STR "c814ca20-e0dc-11d3-8f5f-0010a4e73d9a"
334
335
#define NS_IXPCCONSTRUCTOR_IID \
336
  {0xc814ca20, 0xe0dc, 0x11d3, \
337
    { 0x8f, 0x5f, 0x00, 0x10, 0xa4, 0xe7, 0x3d, 0x9a }}
338
339
class NS_NO_VTABLE nsIXPCConstructor : public nsISupports {
340
 public:
341
342
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCONSTRUCTOR_IID)
343
344
  /* readonly attribute nsIJSCID classID; */
345
  NS_IMETHOD GetClassID(nsIJSCID **aClassID) = 0;
346
347
  /* readonly attribute nsIJSIID interfaceID; */
348
  NS_IMETHOD GetInterfaceID(nsIJSIID **aInterfaceID) = 0;
349
350
  /* readonly attribute string initializer; */
351
  NS_IMETHOD GetInitializer(char * *aInitializer) = 0;
352
353
};
354
355
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCConstructor, NS_IXPCCONSTRUCTOR_IID)
356
357
/* Use this macro when declaring classes that implement this interface. */
358
#define NS_DECL_NSIXPCCONSTRUCTOR \
359
  NS_IMETHOD GetClassID(nsIJSCID **aClassID) override; \
360
  NS_IMETHOD GetInterfaceID(nsIJSIID **aInterfaceID) override; \
361
  NS_IMETHOD GetInitializer(char * *aInitializer) override; 
362
363
/* Use this macro when declaring the members of this interface when the
364
   class doesn't implement the interface. This is useful for forwarding. */
365
#define NS_DECL_NON_VIRTUAL_NSIXPCCONSTRUCTOR \
366
  nsresult GetClassID(nsIJSCID **aClassID); \
367
  nsresult GetInterfaceID(nsIJSIID **aInterfaceID); \
368
  nsresult GetInitializer(char * *aInitializer); 
369
370
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
371
#define NS_FORWARD_NSIXPCCONSTRUCTOR(_to) \
372
  NS_IMETHOD GetClassID(nsIJSCID **aClassID) override { return _to GetClassID(aClassID); } \
373
  NS_IMETHOD GetInterfaceID(nsIJSIID **aInterfaceID) override { return _to GetInterfaceID(aInterfaceID); } \
374
  NS_IMETHOD GetInitializer(char * *aInitializer) override { return _to GetInitializer(aInitializer); } 
375
376
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
377
#define NS_FORWARD_SAFE_NSIXPCCONSTRUCTOR(_to) \
378
  NS_IMETHOD GetClassID(nsIJSCID **aClassID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassID(aClassID); } \
379
  NS_IMETHOD GetInterfaceID(nsIJSIID **aInterfaceID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaceID(aInterfaceID); } \
380
  NS_IMETHOD GetInitializer(char * *aInitializer) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInitializer(aInitializer); } 
381
382
383
/* starting interface:    nsIXPCComponents_utils_Sandbox */
384
#define NS_IXPCCOMPONENTS_UTILS_SANDBOX_IID_STR "4f8ae0dc-d266-4a32-875b-6a9de71a8ce9"
385
386
#define NS_IXPCCOMPONENTS_UTILS_SANDBOX_IID \
387
  {0x4f8ae0dc, 0xd266, 0x4a32, \
388
    { 0x87, 0x5b, 0x6a, 0x9d, 0xe7, 0x1a, 0x8c, 0xe9 }}
389
390
class NS_NO_VTABLE nsIXPCComponents_utils_Sandbox : public nsISupports {
391
 public:
392
393
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_UTILS_SANDBOX_IID)
394
395
};
396
397
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_utils_Sandbox, NS_IXPCCOMPONENTS_UTILS_SANDBOX_IID)
398
399
/* Use this macro when declaring classes that implement this interface. */
400
#define NS_DECL_NSIXPCCOMPONENTS_UTILS_SANDBOX \
401
  /* no methods! */
402
403
/* Use this macro when declaring the members of this interface when the
404
   class doesn't implement the interface. This is useful for forwarding. */
405
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_UTILS_SANDBOX \
406
  /* no methods! */
407
408
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
409
#define NS_FORWARD_NSIXPCCOMPONENTS_UTILS_SANDBOX(_to) \
410
  /* no methods! */
411
412
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
413
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_UTILS_SANDBOX(_to) \
414
  /* no methods! */
415
416
417
/* starting interface:    ScheduledGCCallback */
418
#define SCHEDULEDGCCALLBACK_IID_STR "71000535-b0fd-44d1-8ce0-909760e3953c"
419
420
#define SCHEDULEDGCCALLBACK_IID \
421
  {0x71000535, 0xb0fd, 0x44d1, \
422
    { 0x8c, 0xe0, 0x90, 0x97, 0x60, 0xe3, 0x95, 0x3c }}
423
424
class NS_NO_VTABLE ScheduledGCCallback : public nsISupports {
425
 public:
426
427
  NS_DECLARE_STATIC_IID_ACCESSOR(SCHEDULEDGCCALLBACK_IID)
428
429
  /* void callback (); */
430
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Callback(void) = 0;
431
432
};
433
434
  NS_DEFINE_STATIC_IID_ACCESSOR(ScheduledGCCallback, SCHEDULEDGCCALLBACK_IID)
435
436
/* Use this macro when declaring classes that implement this interface. */
437
#define NS_DECL_SCHEDULEDGCCALLBACK \
438
  NS_IMETHOD Callback(void) override; 
439
440
/* Use this macro when declaring the members of this interface when the
441
   class doesn't implement the interface. This is useful for forwarding. */
442
#define NS_DECL_NON_VIRTUAL_SCHEDULEDGCCALLBACK \
443
  nsresult Callback(void); 
444
445
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
446
#define NS_FORWARD_SCHEDULEDGCCALLBACK(_to) \
447
  NS_IMETHOD Callback(void) override { return _to Callback(); } 
448
449
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
450
#define NS_FORWARD_SAFE_SCHEDULEDGCCALLBACK(_to) \
451
  NS_IMETHOD Callback(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Callback(); } 
452
453
454
/* starting interface:    nsIBlockThreadedExecutionCallback */
455
#define NS_IBLOCKTHREADEDEXECUTIONCALLBACK_IID_STR "c3b85a5c-c328-47d4-aaaf-384c4ff9d77d"
456
457
#define NS_IBLOCKTHREADEDEXECUTIONCALLBACK_IID \
458
  {0xc3b85a5c, 0xc328, 0x47d4, \
459
    { 0xaa, 0xaf, 0x38, 0x4c, 0x4f, 0xf9, 0xd7, 0x7d }}
460
461
class NS_NO_VTABLE nsIBlockThreadedExecutionCallback : public nsISupports {
462
 public:
463
464
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IBLOCKTHREADEDEXECUTIONCALLBACK_IID)
465
466
  /* void callback (); */
467
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD Callback(void) = 0;
468
469
};
470
471
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIBlockThreadedExecutionCallback, NS_IBLOCKTHREADEDEXECUTIONCALLBACK_IID)
472
473
/* Use this macro when declaring classes that implement this interface. */
474
#define NS_DECL_NSIBLOCKTHREADEDEXECUTIONCALLBACK \
475
  NS_IMETHOD Callback(void) override; 
476
477
/* Use this macro when declaring the members of this interface when the
478
   class doesn't implement the interface. This is useful for forwarding. */
479
#define NS_DECL_NON_VIRTUAL_NSIBLOCKTHREADEDEXECUTIONCALLBACK \
480
  nsresult Callback(void); 
481
482
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
483
#define NS_FORWARD_NSIBLOCKTHREADEDEXECUTIONCALLBACK(_to) \
484
  NS_IMETHOD Callback(void) override { return _to Callback(); } 
485
486
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
487
#define NS_FORWARD_SAFE_NSIBLOCKTHREADEDEXECUTIONCALLBACK(_to) \
488
  NS_IMETHOD Callback(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Callback(); } 
489
490
491
/* starting interface:    nsIXPCComponents_Utils */
492
#define NS_IXPCCOMPONENTS_UTILS_IID_STR "86003fe3-ee9a-4620-91dc-eef8b1e58815"
493
494
#define NS_IXPCCOMPONENTS_UTILS_IID \
495
  {0x86003fe3, 0xee9a, 0x4620, \
496
    { 0x91, 0xdc, 0xee, 0xf8, 0xb1, 0xe5, 0x88, 0x15 }}
497
498
class NS_NO_VTABLE nsIXPCComponents_Utils : public nsISupports {
499
 public:
500
501
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_UTILS_IID)
502
503
  /* [implicit_jscontext] void reportError (in jsval error, [optional] in jsval stack); */
504
  NS_IMETHOD ReportError(JS::HandleValue error, JS::HandleValue stack, JSContext* cx) = 0;
505
506
  /* readonly attribute nsIXPCComponents_utils_Sandbox Sandbox; */
507
  NS_IMETHOD GetSandbox(nsIXPCComponents_utils_Sandbox **aSandbox) = 0;
508
509
  /* [implicit_jscontext,optional_argc] jsval evalInSandbox (in AString source, in jsval sandbox, [optional] in jsval version, [optional] in AUTF8String filename, [optional] in long lineNo); */
510
  NS_IMETHOD EvalInSandbox(const nsAString& source, JS::HandleValue sandbox, JS::HandleValue version, const nsACString& filename, int32_t lineNo, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) = 0;
511
512
  /* [implicit_jscontext] jsval getUAWidgetScope (in nsIPrincipal principal); */
513
  NS_IMETHOD GetUAWidgetScope(nsIPrincipal *principal, JSContext* cx, JS::MutableHandleValue _retval) = 0;
514
515
  /* [implicit_jscontext] jsval getSandboxMetadata (in jsval sandbox); */
516
  NS_IMETHOD GetSandboxMetadata(JS::HandleValue sandbox, JSContext* cx, JS::MutableHandleValue _retval) = 0;
517
518
  /* [implicit_jscontext] void setSandboxMetadata (in jsval sandbox, in jsval metadata); */
519
  NS_IMETHOD SetSandboxMetadata(JS::HandleValue sandbox, JS::HandleValue metadata, JSContext* cx) = 0;
520
521
  /* [implicit_jscontext,optional_argc] jsval import (in AUTF8String aResourceURI, [optional] in jsval targetObj); */
522
  NS_IMETHOD Import(const nsACString& aResourceURI, JS::HandleValue targetObj, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) = 0;
523
524
  /* boolean isModuleLoaded (in AUTF8String aResourceURI); */
525
  NS_IMETHOD IsModuleLoaded(const nsACString& aResourceURI, bool *_retval) = 0;
526
527
  /* void unload (in AUTF8String registryLocation); */
528
  NS_IMETHOD Unload(const nsACString& registryLocation) = 0;
529
530
  /* [implicit_jscontext] void importGlobalProperties (in jsval aPropertyList); */
531
  NS_IMETHOD ImportGlobalProperties(JS::HandleValue aPropertyList, JSContext* cx) = 0;
532
533
  /* [implicit_jscontext] xpcIJSWeakReference getWeakReference (in jsval obj); */
534
  NS_IMETHOD GetWeakReference(JS::HandleValue obj, JSContext* cx, xpcIJSWeakReference **_retval) = 0;
535
536
  /* void forceGC (); */
537
  NS_IMETHOD ForceGC(void) = 0;
538
539
  /* void forceCC ([optional] in nsICycleCollectorListener aListener); */
540
  NS_IMETHOD ForceCC(nsICycleCollectorListener *aListener) = 0;
541
542
  /* nsICycleCollectorListener createCCLogger (); */
543
  NS_IMETHOD CreateCCLogger(nsICycleCollectorListener **_retval) = 0;
544
545
  /* void finishCC (); */
546
  NS_IMETHOD FinishCC(void) = 0;
547
548
  /* void ccSlice (in long long budget); */
549
  NS_IMETHOD CcSlice(int64_t budget) = 0;
550
551
  /* long getMaxCCSliceTimeSinceClear (); */
552
  NS_IMETHOD GetMaxCCSliceTimeSinceClear(int32_t *_retval) = 0;
553
554
  /* void clearMaxCCTime (); */
555
  NS_IMETHOD ClearMaxCCTime(void) = 0;
556
557
  /* void forceShrinkingGC (); */
558
  NS_IMETHOD ForceShrinkingGC(void) = 0;
559
560
  /* void schedulePreciseGC (in ScheduledGCCallback callback); */
561
  NS_IMETHOD SchedulePreciseGC(ScheduledGCCallback *callback) = 0;
562
563
  /* void schedulePreciseShrinkingGC (in ScheduledGCCallback callback); */
564
  NS_IMETHOD SchedulePreciseShrinkingGC(ScheduledGCCallback *callback) = 0;
565
566
  /* void unlinkGhostWindows (); */
567
  NS_IMETHOD UnlinkGhostWindows(void) = 0;
568
569
  /* [implicit_jscontext] jsval getJSTestingFunctions (); */
570
  NS_IMETHOD GetJSTestingFunctions(JSContext* cx, JS::MutableHandleValue _retval) = 0;
571
572
  /* [implicit_jscontext] jsval callFunctionWithAsyncStack (in jsval function, in nsIStackFrame stack, in AString asyncCause); */
573
  NS_IMETHOD CallFunctionWithAsyncStack(JS::HandleValue function, nsIStackFrame *stack, const nsAString& asyncCause, JSContext* cx, JS::MutableHandleValue _retval) = 0;
574
575
  /* [implicit_jscontext] jsval getGlobalForObject (in jsval obj); */
576
  NS_IMETHOD GetGlobalForObject(JS::HandleValue obj, JSContext* cx, JS::MutableHandleValue _retval) = 0;
577
578
  /* [implicit_jscontext] boolean isProxy (in jsval vobject); */
579
  NS_IMETHOD IsProxy(JS::HandleValue vobject, JSContext* cx, bool *_retval) = 0;
580
581
  /* [implicit_jscontext] jsval exportFunction (in jsval vfunction, in jsval vscope, [optional] in jsval voptions); */
582
  NS_IMETHOD ExportFunction(JS::HandleValue vfunction, JS::HandleValue vscope, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) = 0;
583
584
  /* [implicit_jscontext] jsval createObjectIn (in jsval vobj, [optional] in jsval voptions); */
585
  NS_IMETHOD CreateObjectIn(JS::HandleValue vobj, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) = 0;
586
587
  /* [implicit_jscontext] void makeObjectPropsNormal (in jsval vobj); */
588
  NS_IMETHOD MakeObjectPropsNormal(JS::HandleValue vobj, JSContext* cx) = 0;
589
590
  /* bool isDeadWrapper (in jsval obj); */
591
  NS_IMETHOD IsDeadWrapper(JS::HandleValue obj, bool *_retval) = 0;
592
593
  /* bool isCrossProcessWrapper (in jsval obj); */
594
  NS_IMETHOD IsCrossProcessWrapper(JS::HandleValue obj, bool *_retval) = 0;
595
596
  /* ACString getCrossProcessWrapperTag (in jsval obj); */
597
  NS_IMETHOD GetCrossProcessWrapperTag(JS::HandleValue obj, nsACString& _retval) = 0;
598
599
  /* void permitCPOWsInScope (in jsval obj); */
600
  NS_IMETHOD PermitCPOWsInScope(JS::HandleValue obj) = 0;
601
602
  /* [implicit_jscontext] void recomputeWrappers ([optional] in jsval vobj); */
603
  NS_IMETHOD RecomputeWrappers(JS::HandleValue vobj, JSContext* cx) = 0;
604
605
  /* [implicit_jscontext] void setWantXrays (in jsval vscope); */
606
  NS_IMETHOD SetWantXrays(JS::HandleValue vscope, JSContext* cx) = 0;
607
608
  /* [implicit_jscontext] void forcePermissiveCOWs (); */
609
  NS_IMETHOD ForcePermissiveCOWs(JSContext* cx) = 0;
610
611
  /* [implicit_jscontext] void dispatch (in jsval runnable, [optional] in jsval scope); */
612
  NS_IMETHOD Dispatch(JS::HandleValue runnable, JS::HandleValue scope, JSContext* cx) = 0;
613
614
  /* [implicit_jscontext] attribute boolean strict; */
615
  NS_IMETHOD GetStrict(JSContext* cx, bool *aStrict) = 0;
616
  NS_IMETHOD SetStrict(JSContext* cx, bool aStrict) = 0;
617
618
  /* [implicit_jscontext] attribute boolean werror; */
619
  NS_IMETHOD GetWerror(JSContext* cx, bool *aWerror) = 0;
620
  NS_IMETHOD SetWerror(JSContext* cx, bool aWerror) = 0;
621
622
  /* [implicit_jscontext] attribute boolean strict_mode; */
623
  NS_IMETHOD GetStrict_mode(JSContext* cx, bool *aStrict_mode) = 0;
624
  NS_IMETHOD SetStrict_mode(JSContext* cx, bool aStrict_mode) = 0;
625
626
  /* [implicit_jscontext] attribute boolean ion; */
627
  NS_IMETHOD GetIon(JSContext* cx, bool *aIon) = 0;
628
  NS_IMETHOD SetIon(JSContext* cx, bool aIon) = 0;
629
630
  /* readonly attribute boolean isInAutomation; */
631
  NS_IMETHOD GetIsInAutomation(bool *aIsInAutomation) = 0;
632
633
  /* void crashIfNotInAutomation (); */
634
  NS_IMETHOD CrashIfNotInAutomation(void) = 0;
635
636
  /* [implicit_jscontext] void setGCZeal (in long zeal); */
637
  NS_IMETHOD SetGCZeal(int32_t zeal, JSContext* cx) = 0;
638
639
  /* [implicit_jscontext] void nukeSandbox (in jsval obj); */
640
  NS_IMETHOD NukeSandbox(JS::HandleValue obj, JSContext* cx) = 0;
641
642
  /* [implicit_jscontext] void blockScriptForGlobal (in jsval global); */
643
  NS_IMETHOD BlockScriptForGlobal(JS::HandleValue global, JSContext* cx) = 0;
644
645
  /* [implicit_jscontext] void unblockScriptForGlobal (in jsval global); */
646
  NS_IMETHOD UnblockScriptForGlobal(JS::HandleValue global, JSContext* cx) = 0;
647
648
  /* bool isXrayWrapper (in jsval obj); */
649
  NS_IMETHOD IsXrayWrapper(JS::HandleValue obj, bool *_retval) = 0;
650
651
  /* [implicit_jscontext] jsval waiveXrays (in jsval aVal); */
652
  NS_IMETHOD WaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) = 0;
653
654
  /* [implicit_jscontext] jsval unwaiveXrays (in jsval aVal); */
655
  NS_IMETHOD UnwaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) = 0;
656
657
  /* [implicit_jscontext] string getClassName (in jsval aObj, in bool aUnwrap); */
658
  NS_IMETHOD GetClassName(JS::HandleValue aObj, bool aUnwrap, JSContext* cx, char * *_retval) = 0;
659
660
  /* nsIClassInfo getDOMClassInfo (in AString aClassName); */
661
  NS_IMETHOD GetDOMClassInfo(const nsAString& aClassName, nsIClassInfo **_retval) = 0;
662
663
  /* [implicit_jscontext] jsval getIncumbentGlobal ([optional] in jsval callback); */
664
  NS_IMETHOD GetIncumbentGlobal(JS::HandleValue callback, JSContext* cx, JS::MutableHandleValue _retval) = 0;
665
666
  /* [implicit_jscontext] nsISupports generateXPCWrappedJS (in jsval obj, [optional] in jsval scope); */
667
  NS_IMETHOD GenerateXPCWrappedJS(JS::HandleValue obj, JS::HandleValue scope, JSContext* cx, nsISupports **_retval) = 0;
668
669
  /* PRTime getWatchdogTimestamp (in AString aCategory); */
670
  NS_IMETHOD GetWatchdogTimestamp(const nsAString& aCategory, PRTime *_retval) = 0;
671
672
  /* [implicit_jscontext] jsval getJSEngineTelemetryValue (); */
673
  NS_IMETHOD GetJSEngineTelemetryValue(JSContext* cx, JS::MutableHandleValue _retval) = 0;
674
675
  /* [implicit_jscontext] jsval cloneInto (in jsval value, in jsval scope, [optional] in jsval options); */
676
  NS_IMETHOD CloneInto(JS::HandleValue value, JS::HandleValue scope, JS::HandleValue options, JSContext* cx, JS::MutableHandleValue _retval) = 0;
677
678
  /* nsIPrincipal getWebIDLCallerPrincipal (); */
679
  NS_IMETHOD GetWebIDLCallerPrincipal(nsIPrincipal **_retval) = 0;
680
681
  /* [implicit_jscontext] nsIPrincipal getObjectPrincipal (in jsval obj); */
682
  NS_IMETHOD GetObjectPrincipal(JS::HandleValue obj, JSContext* cx, nsIPrincipal **_retval) = 0;
683
684
  /* [implicit_jscontext] ACString getRealmLocation (in jsval obj); */
685
  NS_IMETHOD GetRealmLocation(JS::HandleValue obj, JSContext* cx, nsACString& _retval) = 0;
686
687
  /* double now (); */
688
  NS_IMETHOD Now(double *_retval) = 0;
689
690
  /* AUTF8String readUTF8File (in nsIFile file); */
691
  NS_IMETHOD ReadUTF8File(nsIFile *file, nsACString& _retval) = 0;
692
693
  /* AUTF8String readUTF8URI (in nsIURI url); */
694
  NS_IMETHOD ReadUTF8URI(nsIURI *url, nsACString& _retval) = 0;
695
696
  /* void blockThreadedExecution (in nsIBlockThreadedExecutionCallback aBlockedCallback); */
697
  NS_IMETHOD BlockThreadedExecution(nsIBlockThreadedExecutionCallback *aBlockedCallback) = 0;
698
699
  /* void unblockThreadedExecution (); */
700
  NS_IMETHOD UnblockThreadedExecution(void) = 0;
701
702
  /* void recordReplayDirective (in long directive); */
703
  NS_IMETHOD RecordReplayDirective(int32_t directive) = 0;
704
705
  /* nsIEditorSpellCheck createSpellChecker (); */
706
  NS_IMETHOD CreateSpellChecker(nsIEditorSpellCheck **_retval) = 0;
707
708
  /* nsISupports createCommandLine (); */
709
  NS_IMETHOD CreateCommandLine(nsISupports **_retval) = 0;
710
711
  /* nsICommandParams createCommandParams (); */
712
  NS_IMETHOD CreateCommandParams(nsICommandParams **_retval) = 0;
713
714
  /* nsILoadContext createLoadContext (); */
715
  NS_IMETHOD CreateLoadContext(nsILoadContext **_retval) = 0;
716
717
  /* nsILoadContext createPrivateLoadContext (); */
718
  NS_IMETHOD CreatePrivateLoadContext(nsILoadContext **_retval) = 0;
719
720
  /* nsIPersistentProperties createPersistentProperties (); */
721
  NS_IMETHOD CreatePersistentProperties(nsIPersistentProperties **_retval) = 0;
722
723
};
724
725
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents_Utils, NS_IXPCCOMPONENTS_UTILS_IID)
726
727
/* Use this macro when declaring classes that implement this interface. */
728
#define NS_DECL_NSIXPCCOMPONENTS_UTILS \
729
  NS_IMETHOD ReportError(JS::HandleValue error, JS::HandleValue stack, JSContext* cx) override; \
730
  NS_IMETHOD GetSandbox(nsIXPCComponents_utils_Sandbox **aSandbox) override; \
731
  NS_IMETHOD EvalInSandbox(const nsAString& source, JS::HandleValue sandbox, JS::HandleValue version, const nsACString& filename, int32_t lineNo, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) override; \
732
  NS_IMETHOD GetUAWidgetScope(nsIPrincipal *principal, JSContext* cx, JS::MutableHandleValue _retval) override; \
733
  NS_IMETHOD GetSandboxMetadata(JS::HandleValue sandbox, JSContext* cx, JS::MutableHandleValue _retval) override; \
734
  NS_IMETHOD SetSandboxMetadata(JS::HandleValue sandbox, JS::HandleValue metadata, JSContext* cx) override; \
735
  NS_IMETHOD Import(const nsACString& aResourceURI, JS::HandleValue targetObj, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) override; \
736
  NS_IMETHOD IsModuleLoaded(const nsACString& aResourceURI, bool *_retval) override; \
737
  NS_IMETHOD Unload(const nsACString& registryLocation) override; \
738
  NS_IMETHOD ImportGlobalProperties(JS::HandleValue aPropertyList, JSContext* cx) override; \
739
  NS_IMETHOD GetWeakReference(JS::HandleValue obj, JSContext* cx, xpcIJSWeakReference **_retval) override; \
740
  NS_IMETHOD ForceGC(void) override; \
741
  NS_IMETHOD ForceCC(nsICycleCollectorListener *aListener) override; \
742
  NS_IMETHOD CreateCCLogger(nsICycleCollectorListener **_retval) override; \
743
  NS_IMETHOD FinishCC(void) override; \
744
  NS_IMETHOD CcSlice(int64_t budget) override; \
745
  NS_IMETHOD GetMaxCCSliceTimeSinceClear(int32_t *_retval) override; \
746
  NS_IMETHOD ClearMaxCCTime(void) override; \
747
  NS_IMETHOD ForceShrinkingGC(void) override; \
748
  NS_IMETHOD SchedulePreciseGC(ScheduledGCCallback *callback) override; \
749
  NS_IMETHOD SchedulePreciseShrinkingGC(ScheduledGCCallback *callback) override; \
750
  NS_IMETHOD UnlinkGhostWindows(void) override; \
751
  NS_IMETHOD GetJSTestingFunctions(JSContext* cx, JS::MutableHandleValue _retval) override; \
752
  NS_IMETHOD CallFunctionWithAsyncStack(JS::HandleValue function, nsIStackFrame *stack, const nsAString& asyncCause, JSContext* cx, JS::MutableHandleValue _retval) override; \
753
  NS_IMETHOD GetGlobalForObject(JS::HandleValue obj, JSContext* cx, JS::MutableHandleValue _retval) override; \
754
  NS_IMETHOD IsProxy(JS::HandleValue vobject, JSContext* cx, bool *_retval) override; \
755
  NS_IMETHOD ExportFunction(JS::HandleValue vfunction, JS::HandleValue vscope, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) override; \
756
  NS_IMETHOD CreateObjectIn(JS::HandleValue vobj, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) override; \
757
  NS_IMETHOD MakeObjectPropsNormal(JS::HandleValue vobj, JSContext* cx) override; \
758
  NS_IMETHOD IsDeadWrapper(JS::HandleValue obj, bool *_retval) override; \
759
  NS_IMETHOD IsCrossProcessWrapper(JS::HandleValue obj, bool *_retval) override; \
760
  NS_IMETHOD GetCrossProcessWrapperTag(JS::HandleValue obj, nsACString& _retval) override; \
761
  NS_IMETHOD PermitCPOWsInScope(JS::HandleValue obj) override; \
762
  NS_IMETHOD RecomputeWrappers(JS::HandleValue vobj, JSContext* cx) override; \
763
  NS_IMETHOD SetWantXrays(JS::HandleValue vscope, JSContext* cx) override; \
764
  NS_IMETHOD ForcePermissiveCOWs(JSContext* cx) override; \
765
  NS_IMETHOD Dispatch(JS::HandleValue runnable, JS::HandleValue scope, JSContext* cx) override; \
766
  NS_IMETHOD GetStrict(JSContext* cx, bool *aStrict) override; \
767
  NS_IMETHOD SetStrict(JSContext* cx, bool aStrict) override; \
768
  NS_IMETHOD GetWerror(JSContext* cx, bool *aWerror) override; \
769
  NS_IMETHOD SetWerror(JSContext* cx, bool aWerror) override; \
770
  NS_IMETHOD GetStrict_mode(JSContext* cx, bool *aStrict_mode) override; \
771
  NS_IMETHOD SetStrict_mode(JSContext* cx, bool aStrict_mode) override; \
772
  NS_IMETHOD GetIon(JSContext* cx, bool *aIon) override; \
773
  NS_IMETHOD SetIon(JSContext* cx, bool aIon) override; \
774
  NS_IMETHOD GetIsInAutomation(bool *aIsInAutomation) override; \
775
  NS_IMETHOD CrashIfNotInAutomation(void) override; \
776
  NS_IMETHOD SetGCZeal(int32_t zeal, JSContext* cx) override; \
777
  NS_IMETHOD NukeSandbox(JS::HandleValue obj, JSContext* cx) override; \
778
  NS_IMETHOD BlockScriptForGlobal(JS::HandleValue global, JSContext* cx) override; \
779
  NS_IMETHOD UnblockScriptForGlobal(JS::HandleValue global, JSContext* cx) override; \
780
  NS_IMETHOD IsXrayWrapper(JS::HandleValue obj, bool *_retval) override; \
781
  NS_IMETHOD WaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) override; \
782
  NS_IMETHOD UnwaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) override; \
783
  NS_IMETHOD GetClassName(JS::HandleValue aObj, bool aUnwrap, JSContext* cx, char * *_retval) override; \
784
  NS_IMETHOD GetDOMClassInfo(const nsAString& aClassName, nsIClassInfo **_retval) override; \
785
  NS_IMETHOD GetIncumbentGlobal(JS::HandleValue callback, JSContext* cx, JS::MutableHandleValue _retval) override; \
786
  NS_IMETHOD GenerateXPCWrappedJS(JS::HandleValue obj, JS::HandleValue scope, JSContext* cx, nsISupports **_retval) override; \
787
  NS_IMETHOD GetWatchdogTimestamp(const nsAString& aCategory, PRTime *_retval) override; \
788
  NS_IMETHOD GetJSEngineTelemetryValue(JSContext* cx, JS::MutableHandleValue _retval) override; \
789
  NS_IMETHOD CloneInto(JS::HandleValue value, JS::HandleValue scope, JS::HandleValue options, JSContext* cx, JS::MutableHandleValue _retval) override; \
790
  NS_IMETHOD GetWebIDLCallerPrincipal(nsIPrincipal **_retval) override; \
791
  NS_IMETHOD GetObjectPrincipal(JS::HandleValue obj, JSContext* cx, nsIPrincipal **_retval) override; \
792
  NS_IMETHOD GetRealmLocation(JS::HandleValue obj, JSContext* cx, nsACString& _retval) override; \
793
  NS_IMETHOD Now(double *_retval) override; \
794
  NS_IMETHOD ReadUTF8File(nsIFile *file, nsACString& _retval) override; \
795
  NS_IMETHOD ReadUTF8URI(nsIURI *url, nsACString& _retval) override; \
796
  NS_IMETHOD BlockThreadedExecution(nsIBlockThreadedExecutionCallback *aBlockedCallback) override; \
797
  NS_IMETHOD UnblockThreadedExecution(void) override; \
798
  NS_IMETHOD RecordReplayDirective(int32_t directive) override; \
799
  NS_IMETHOD CreateSpellChecker(nsIEditorSpellCheck **_retval) override; \
800
  NS_IMETHOD CreateCommandLine(nsISupports **_retval) override; \
801
  NS_IMETHOD CreateCommandParams(nsICommandParams **_retval) override; \
802
  NS_IMETHOD CreateLoadContext(nsILoadContext **_retval) override; \
803
  NS_IMETHOD CreatePrivateLoadContext(nsILoadContext **_retval) override; \
804
  NS_IMETHOD CreatePersistentProperties(nsIPersistentProperties **_retval) override; 
805
806
/* Use this macro when declaring the members of this interface when the
807
   class doesn't implement the interface. This is useful for forwarding. */
808
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS_UTILS \
809
  nsresult ReportError(JS::HandleValue error, JS::HandleValue stack, JSContext* cx); \
810
  nsresult GetSandbox(nsIXPCComponents_utils_Sandbox **aSandbox); \
811
  nsresult EvalInSandbox(const nsAString& source, JS::HandleValue sandbox, JS::HandleValue version, const nsACString& filename, int32_t lineNo, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval); \
812
  nsresult GetUAWidgetScope(nsIPrincipal *principal, JSContext* cx, JS::MutableHandleValue _retval); \
813
  nsresult GetSandboxMetadata(JS::HandleValue sandbox, JSContext* cx, JS::MutableHandleValue _retval); \
814
  nsresult SetSandboxMetadata(JS::HandleValue sandbox, JS::HandleValue metadata, JSContext* cx); \
815
  nsresult Import(const nsACString& aResourceURI, JS::HandleValue targetObj, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval); \
816
  nsresult IsModuleLoaded(const nsACString& aResourceURI, bool *_retval); \
817
  nsresult Unload(const nsACString& registryLocation); \
818
  nsresult ImportGlobalProperties(JS::HandleValue aPropertyList, JSContext* cx); \
819
  nsresult GetWeakReference(JS::HandleValue obj, JSContext* cx, xpcIJSWeakReference **_retval); \
820
  nsresult ForceGC(void); \
821
  nsresult ForceCC(nsICycleCollectorListener *aListener); \
822
  nsresult CreateCCLogger(nsICycleCollectorListener **_retval); \
823
  nsresult FinishCC(void); \
824
  nsresult CcSlice(int64_t budget); \
825
  nsresult GetMaxCCSliceTimeSinceClear(int32_t *_retval); \
826
  nsresult ClearMaxCCTime(void); \
827
  nsresult ForceShrinkingGC(void); \
828
  nsresult SchedulePreciseGC(ScheduledGCCallback *callback); \
829
  nsresult SchedulePreciseShrinkingGC(ScheduledGCCallback *callback); \
830
  nsresult UnlinkGhostWindows(void); \
831
  nsresult GetJSTestingFunctions(JSContext* cx, JS::MutableHandleValue _retval); \
832
  nsresult CallFunctionWithAsyncStack(JS::HandleValue function, nsIStackFrame *stack, const nsAString& asyncCause, JSContext* cx, JS::MutableHandleValue _retval); \
833
  nsresult GetGlobalForObject(JS::HandleValue obj, JSContext* cx, JS::MutableHandleValue _retval); \
834
  nsresult IsProxy(JS::HandleValue vobject, JSContext* cx, bool *_retval); \
835
  nsresult ExportFunction(JS::HandleValue vfunction, JS::HandleValue vscope, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval); \
836
  nsresult CreateObjectIn(JS::HandleValue vobj, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval); \
837
  nsresult MakeObjectPropsNormal(JS::HandleValue vobj, JSContext* cx); \
838
  nsresult IsDeadWrapper(JS::HandleValue obj, bool *_retval); \
839
  nsresult IsCrossProcessWrapper(JS::HandleValue obj, bool *_retval); \
840
  nsresult GetCrossProcessWrapperTag(JS::HandleValue obj, nsACString& _retval); \
841
  nsresult PermitCPOWsInScope(JS::HandleValue obj); \
842
  nsresult RecomputeWrappers(JS::HandleValue vobj, JSContext* cx); \
843
  nsresult SetWantXrays(JS::HandleValue vscope, JSContext* cx); \
844
  nsresult ForcePermissiveCOWs(JSContext* cx); \
845
  nsresult Dispatch(JS::HandleValue runnable, JS::HandleValue scope, JSContext* cx); \
846
  nsresult GetStrict(JSContext* cx, bool *aStrict); \
847
  nsresult SetStrict(JSContext* cx, bool aStrict); \
848
  nsresult GetWerror(JSContext* cx, bool *aWerror); \
849
  nsresult SetWerror(JSContext* cx, bool aWerror); \
850
  nsresult GetStrict_mode(JSContext* cx, bool *aStrict_mode); \
851
  nsresult SetStrict_mode(JSContext* cx, bool aStrict_mode); \
852
  nsresult GetIon(JSContext* cx, bool *aIon); \
853
  nsresult SetIon(JSContext* cx, bool aIon); \
854
  nsresult GetIsInAutomation(bool *aIsInAutomation); \
855
  nsresult CrashIfNotInAutomation(void); \
856
  nsresult SetGCZeal(int32_t zeal, JSContext* cx); \
857
  nsresult NukeSandbox(JS::HandleValue obj, JSContext* cx); \
858
  nsresult BlockScriptForGlobal(JS::HandleValue global, JSContext* cx); \
859
  nsresult UnblockScriptForGlobal(JS::HandleValue global, JSContext* cx); \
860
  nsresult IsXrayWrapper(JS::HandleValue obj, bool *_retval); \
861
  nsresult WaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval); \
862
  nsresult UnwaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval); \
863
  nsresult GetClassName(JS::HandleValue aObj, bool aUnwrap, JSContext* cx, char * *_retval); \
864
  nsresult GetDOMClassInfo(const nsAString& aClassName, nsIClassInfo **_retval); \
865
  nsresult GetIncumbentGlobal(JS::HandleValue callback, JSContext* cx, JS::MutableHandleValue _retval); \
866
  nsresult GenerateXPCWrappedJS(JS::HandleValue obj, JS::HandleValue scope, JSContext* cx, nsISupports **_retval); \
867
  nsresult GetWatchdogTimestamp(const nsAString& aCategory, PRTime *_retval); \
868
  nsresult GetJSEngineTelemetryValue(JSContext* cx, JS::MutableHandleValue _retval); \
869
  nsresult CloneInto(JS::HandleValue value, JS::HandleValue scope, JS::HandleValue options, JSContext* cx, JS::MutableHandleValue _retval); \
870
  nsresult GetWebIDLCallerPrincipal(nsIPrincipal **_retval); \
871
  nsresult GetObjectPrincipal(JS::HandleValue obj, JSContext* cx, nsIPrincipal **_retval); \
872
  nsresult GetRealmLocation(JS::HandleValue obj, JSContext* cx, nsACString& _retval); \
873
  nsresult Now(double *_retval); \
874
  nsresult ReadUTF8File(nsIFile *file, nsACString& _retval); \
875
  nsresult ReadUTF8URI(nsIURI *url, nsACString& _retval); \
876
  nsresult BlockThreadedExecution(nsIBlockThreadedExecutionCallback *aBlockedCallback); \
877
  nsresult UnblockThreadedExecution(void); \
878
  nsresult RecordReplayDirective(int32_t directive); \
879
  nsresult CreateSpellChecker(nsIEditorSpellCheck **_retval); \
880
  nsresult CreateCommandLine(nsISupports **_retval); \
881
  nsresult CreateCommandParams(nsICommandParams **_retval); \
882
  nsresult CreateLoadContext(nsILoadContext **_retval); \
883
  nsresult CreatePrivateLoadContext(nsILoadContext **_retval); \
884
  nsresult CreatePersistentProperties(nsIPersistentProperties **_retval); 
885
886
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
887
#define NS_FORWARD_NSIXPCCOMPONENTS_UTILS(_to) \
888
  NS_IMETHOD ReportError(JS::HandleValue error, JS::HandleValue stack, JSContext* cx) override { return _to ReportError(error, stack, cx); } \
889
  NS_IMETHOD GetSandbox(nsIXPCComponents_utils_Sandbox **aSandbox) override { return _to GetSandbox(aSandbox); } \
890
  NS_IMETHOD EvalInSandbox(const nsAString& source, JS::HandleValue sandbox, JS::HandleValue version, const nsACString& filename, int32_t lineNo, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) override { return _to EvalInSandbox(source, sandbox, version, filename, lineNo, cx, _argc, _retval); } \
891
  NS_IMETHOD GetUAWidgetScope(nsIPrincipal *principal, JSContext* cx, JS::MutableHandleValue _retval) override { return _to GetUAWidgetScope(principal, cx, _retval); } \
892
  NS_IMETHOD GetSandboxMetadata(JS::HandleValue sandbox, JSContext* cx, JS::MutableHandleValue _retval) override { return _to GetSandboxMetadata(sandbox, cx, _retval); } \
893
  NS_IMETHOD SetSandboxMetadata(JS::HandleValue sandbox, JS::HandleValue metadata, JSContext* cx) override { return _to SetSandboxMetadata(sandbox, metadata, cx); } \
894
  NS_IMETHOD Import(const nsACString& aResourceURI, JS::HandleValue targetObj, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) override { return _to Import(aResourceURI, targetObj, cx, _argc, _retval); } \
895
  NS_IMETHOD IsModuleLoaded(const nsACString& aResourceURI, bool *_retval) override { return _to IsModuleLoaded(aResourceURI, _retval); } \
896
  NS_IMETHOD Unload(const nsACString& registryLocation) override { return _to Unload(registryLocation); } \
897
  NS_IMETHOD ImportGlobalProperties(JS::HandleValue aPropertyList, JSContext* cx) override { return _to ImportGlobalProperties(aPropertyList, cx); } \
898
  NS_IMETHOD GetWeakReference(JS::HandleValue obj, JSContext* cx, xpcIJSWeakReference **_retval) override { return _to GetWeakReference(obj, cx, _retval); } \
899
  NS_IMETHOD ForceGC(void) override { return _to ForceGC(); } \
900
  NS_IMETHOD ForceCC(nsICycleCollectorListener *aListener) override { return _to ForceCC(aListener); } \
901
  NS_IMETHOD CreateCCLogger(nsICycleCollectorListener **_retval) override { return _to CreateCCLogger(_retval); } \
902
  NS_IMETHOD FinishCC(void) override { return _to FinishCC(); } \
903
  NS_IMETHOD CcSlice(int64_t budget) override { return _to CcSlice(budget); } \
904
  NS_IMETHOD GetMaxCCSliceTimeSinceClear(int32_t *_retval) override { return _to GetMaxCCSliceTimeSinceClear(_retval); } \
905
  NS_IMETHOD ClearMaxCCTime(void) override { return _to ClearMaxCCTime(); } \
906
  NS_IMETHOD ForceShrinkingGC(void) override { return _to ForceShrinkingGC(); } \
907
  NS_IMETHOD SchedulePreciseGC(ScheduledGCCallback *callback) override { return _to SchedulePreciseGC(callback); } \
908
  NS_IMETHOD SchedulePreciseShrinkingGC(ScheduledGCCallback *callback) override { return _to SchedulePreciseShrinkingGC(callback); } \
909
  NS_IMETHOD UnlinkGhostWindows(void) override { return _to UnlinkGhostWindows(); } \
910
  NS_IMETHOD GetJSTestingFunctions(JSContext* cx, JS::MutableHandleValue _retval) override { return _to GetJSTestingFunctions(cx, _retval); } \
911
  NS_IMETHOD CallFunctionWithAsyncStack(JS::HandleValue function, nsIStackFrame *stack, const nsAString& asyncCause, JSContext* cx, JS::MutableHandleValue _retval) override { return _to CallFunctionWithAsyncStack(function, stack, asyncCause, cx, _retval); } \
912
  NS_IMETHOD GetGlobalForObject(JS::HandleValue obj, JSContext* cx, JS::MutableHandleValue _retval) override { return _to GetGlobalForObject(obj, cx, _retval); } \
913
  NS_IMETHOD IsProxy(JS::HandleValue vobject, JSContext* cx, bool *_retval) override { return _to IsProxy(vobject, cx, _retval); } \
914
  NS_IMETHOD ExportFunction(JS::HandleValue vfunction, JS::HandleValue vscope, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) override { return _to ExportFunction(vfunction, vscope, voptions, cx, _retval); } \
915
  NS_IMETHOD CreateObjectIn(JS::HandleValue vobj, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) override { return _to CreateObjectIn(vobj, voptions, cx, _retval); } \
916
  NS_IMETHOD MakeObjectPropsNormal(JS::HandleValue vobj, JSContext* cx) override { return _to MakeObjectPropsNormal(vobj, cx); } \
917
  NS_IMETHOD IsDeadWrapper(JS::HandleValue obj, bool *_retval) override { return _to IsDeadWrapper(obj, _retval); } \
918
  NS_IMETHOD IsCrossProcessWrapper(JS::HandleValue obj, bool *_retval) override { return _to IsCrossProcessWrapper(obj, _retval); } \
919
  NS_IMETHOD GetCrossProcessWrapperTag(JS::HandleValue obj, nsACString& _retval) override { return _to GetCrossProcessWrapperTag(obj, _retval); } \
920
  NS_IMETHOD PermitCPOWsInScope(JS::HandleValue obj) override { return _to PermitCPOWsInScope(obj); } \
921
  NS_IMETHOD RecomputeWrappers(JS::HandleValue vobj, JSContext* cx) override { return _to RecomputeWrappers(vobj, cx); } \
922
  NS_IMETHOD SetWantXrays(JS::HandleValue vscope, JSContext* cx) override { return _to SetWantXrays(vscope, cx); } \
923
  NS_IMETHOD ForcePermissiveCOWs(JSContext* cx) override { return _to ForcePermissiveCOWs(cx); } \
924
  NS_IMETHOD Dispatch(JS::HandleValue runnable, JS::HandleValue scope, JSContext* cx) override { return _to Dispatch(runnable, scope, cx); } \
925
  NS_IMETHOD GetStrict(JSContext* cx, bool *aStrict) override { return _to GetStrict(cx, aStrict); } \
926
  NS_IMETHOD SetStrict(JSContext* cx, bool aStrict) override { return _to SetStrict(cx, aStrict); } \
927
  NS_IMETHOD GetWerror(JSContext* cx, bool *aWerror) override { return _to GetWerror(cx, aWerror); } \
928
  NS_IMETHOD SetWerror(JSContext* cx, bool aWerror) override { return _to SetWerror(cx, aWerror); } \
929
  NS_IMETHOD GetStrict_mode(JSContext* cx, bool *aStrict_mode) override { return _to GetStrict_mode(cx, aStrict_mode); } \
930
  NS_IMETHOD SetStrict_mode(JSContext* cx, bool aStrict_mode) override { return _to SetStrict_mode(cx, aStrict_mode); } \
931
  NS_IMETHOD GetIon(JSContext* cx, bool *aIon) override { return _to GetIon(cx, aIon); } \
932
  NS_IMETHOD SetIon(JSContext* cx, bool aIon) override { return _to SetIon(cx, aIon); } \
933
  NS_IMETHOD GetIsInAutomation(bool *aIsInAutomation) override { return _to GetIsInAutomation(aIsInAutomation); } \
934
  NS_IMETHOD CrashIfNotInAutomation(void) override { return _to CrashIfNotInAutomation(); } \
935
  NS_IMETHOD SetGCZeal(int32_t zeal, JSContext* cx) override { return _to SetGCZeal(zeal, cx); } \
936
  NS_IMETHOD NukeSandbox(JS::HandleValue obj, JSContext* cx) override { return _to NukeSandbox(obj, cx); } \
937
  NS_IMETHOD BlockScriptForGlobal(JS::HandleValue global, JSContext* cx) override { return _to BlockScriptForGlobal(global, cx); } \
938
  NS_IMETHOD UnblockScriptForGlobal(JS::HandleValue global, JSContext* cx) override { return _to UnblockScriptForGlobal(global, cx); } \
939
  NS_IMETHOD IsXrayWrapper(JS::HandleValue obj, bool *_retval) override { return _to IsXrayWrapper(obj, _retval); } \
940
  NS_IMETHOD WaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) override { return _to WaiveXrays(aVal, cx, _retval); } \
941
  NS_IMETHOD UnwaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) override { return _to UnwaiveXrays(aVal, cx, _retval); } \
942
  NS_IMETHOD GetClassName(JS::HandleValue aObj, bool aUnwrap, JSContext* cx, char * *_retval) override { return _to GetClassName(aObj, aUnwrap, cx, _retval); } \
943
  NS_IMETHOD GetDOMClassInfo(const nsAString& aClassName, nsIClassInfo **_retval) override { return _to GetDOMClassInfo(aClassName, _retval); } \
944
  NS_IMETHOD GetIncumbentGlobal(JS::HandleValue callback, JSContext* cx, JS::MutableHandleValue _retval) override { return _to GetIncumbentGlobal(callback, cx, _retval); } \
945
  NS_IMETHOD GenerateXPCWrappedJS(JS::HandleValue obj, JS::HandleValue scope, JSContext* cx, nsISupports **_retval) override { return _to GenerateXPCWrappedJS(obj, scope, cx, _retval); } \
946
  NS_IMETHOD GetWatchdogTimestamp(const nsAString& aCategory, PRTime *_retval) override { return _to GetWatchdogTimestamp(aCategory, _retval); } \
947
  NS_IMETHOD GetJSEngineTelemetryValue(JSContext* cx, JS::MutableHandleValue _retval) override { return _to GetJSEngineTelemetryValue(cx, _retval); } \
948
  NS_IMETHOD CloneInto(JS::HandleValue value, JS::HandleValue scope, JS::HandleValue options, JSContext* cx, JS::MutableHandleValue _retval) override { return _to CloneInto(value, scope, options, cx, _retval); } \
949
  NS_IMETHOD GetWebIDLCallerPrincipal(nsIPrincipal **_retval) override { return _to GetWebIDLCallerPrincipal(_retval); } \
950
  NS_IMETHOD GetObjectPrincipal(JS::HandleValue obj, JSContext* cx, nsIPrincipal **_retval) override { return _to GetObjectPrincipal(obj, cx, _retval); } \
951
  NS_IMETHOD GetRealmLocation(JS::HandleValue obj, JSContext* cx, nsACString& _retval) override { return _to GetRealmLocation(obj, cx, _retval); } \
952
  NS_IMETHOD Now(double *_retval) override { return _to Now(_retval); } \
953
  NS_IMETHOD ReadUTF8File(nsIFile *file, nsACString& _retval) override { return _to ReadUTF8File(file, _retval); } \
954
  NS_IMETHOD ReadUTF8URI(nsIURI *url, nsACString& _retval) override { return _to ReadUTF8URI(url, _retval); } \
955
  NS_IMETHOD BlockThreadedExecution(nsIBlockThreadedExecutionCallback *aBlockedCallback) override { return _to BlockThreadedExecution(aBlockedCallback); } \
956
  NS_IMETHOD UnblockThreadedExecution(void) override { return _to UnblockThreadedExecution(); } \
957
  NS_IMETHOD RecordReplayDirective(int32_t directive) override { return _to RecordReplayDirective(directive); } \
958
  NS_IMETHOD CreateSpellChecker(nsIEditorSpellCheck **_retval) override { return _to CreateSpellChecker(_retval); } \
959
  NS_IMETHOD CreateCommandLine(nsISupports **_retval) override { return _to CreateCommandLine(_retval); } \
960
  NS_IMETHOD CreateCommandParams(nsICommandParams **_retval) override { return _to CreateCommandParams(_retval); } \
961
  NS_IMETHOD CreateLoadContext(nsILoadContext **_retval) override { return _to CreateLoadContext(_retval); } \
962
  NS_IMETHOD CreatePrivateLoadContext(nsILoadContext **_retval) override { return _to CreatePrivateLoadContext(_retval); } \
963
  NS_IMETHOD CreatePersistentProperties(nsIPersistentProperties **_retval) override { return _to CreatePersistentProperties(_retval); } 
964
965
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
966
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS_UTILS(_to) \
967
  NS_IMETHOD ReportError(JS::HandleValue error, JS::HandleValue stack, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ReportError(error, stack, cx); } \
968
  NS_IMETHOD GetSandbox(nsIXPCComponents_utils_Sandbox **aSandbox) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSandbox(aSandbox); } \
969
  NS_IMETHOD EvalInSandbox(const nsAString& source, JS::HandleValue sandbox, JS::HandleValue version, const nsACString& filename, int32_t lineNo, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EvalInSandbox(source, sandbox, version, filename, lineNo, cx, _argc, _retval); } \
970
  NS_IMETHOD GetUAWidgetScope(nsIPrincipal *principal, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUAWidgetScope(principal, cx, _retval); } \
971
  NS_IMETHOD GetSandboxMetadata(JS::HandleValue sandbox, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSandboxMetadata(sandbox, cx, _retval); } \
972
  NS_IMETHOD SetSandboxMetadata(JS::HandleValue sandbox, JS::HandleValue metadata, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSandboxMetadata(sandbox, metadata, cx); } \
973
  NS_IMETHOD Import(const nsACString& aResourceURI, JS::HandleValue targetObj, JSContext* cx, uint8_t _argc, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Import(aResourceURI, targetObj, cx, _argc, _retval); } \
974
  NS_IMETHOD IsModuleLoaded(const nsACString& aResourceURI, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsModuleLoaded(aResourceURI, _retval); } \
975
  NS_IMETHOD Unload(const nsACString& registryLocation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Unload(registryLocation); } \
976
  NS_IMETHOD ImportGlobalProperties(JS::HandleValue aPropertyList, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ImportGlobalProperties(aPropertyList, cx); } \
977
  NS_IMETHOD GetWeakReference(JS::HandleValue obj, JSContext* cx, xpcIJSWeakReference **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWeakReference(obj, cx, _retval); } \
978
  NS_IMETHOD ForceGC(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForceGC(); } \
979
  NS_IMETHOD ForceCC(nsICycleCollectorListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForceCC(aListener); } \
980
  NS_IMETHOD CreateCCLogger(nsICycleCollectorListener **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCCLogger(_retval); } \
981
  NS_IMETHOD FinishCC(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FinishCC(); } \
982
  NS_IMETHOD CcSlice(int64_t budget) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CcSlice(budget); } \
983
  NS_IMETHOD GetMaxCCSliceTimeSinceClear(int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxCCSliceTimeSinceClear(_retval); } \
984
  NS_IMETHOD ClearMaxCCTime(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearMaxCCTime(); } \
985
  NS_IMETHOD ForceShrinkingGC(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForceShrinkingGC(); } \
986
  NS_IMETHOD SchedulePreciseGC(ScheduledGCCallback *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SchedulePreciseGC(callback); } \
987
  NS_IMETHOD SchedulePreciseShrinkingGC(ScheduledGCCallback *callback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SchedulePreciseShrinkingGC(callback); } \
988
  NS_IMETHOD UnlinkGhostWindows(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnlinkGhostWindows(); } \
989
  NS_IMETHOD GetJSTestingFunctions(JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSTestingFunctions(cx, _retval); } \
990
  NS_IMETHOD CallFunctionWithAsyncStack(JS::HandleValue function, nsIStackFrame *stack, const nsAString& asyncCause, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CallFunctionWithAsyncStack(function, stack, asyncCause, cx, _retval); } \
991
  NS_IMETHOD GetGlobalForObject(JS::HandleValue obj, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobalForObject(obj, cx, _retval); } \
992
  NS_IMETHOD IsProxy(JS::HandleValue vobject, JSContext* cx, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsProxy(vobject, cx, _retval); } \
993
  NS_IMETHOD ExportFunction(JS::HandleValue vfunction, JS::HandleValue vscope, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ExportFunction(vfunction, vscope, voptions, cx, _retval); } \
994
  NS_IMETHOD CreateObjectIn(JS::HandleValue vobj, JS::HandleValue voptions, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateObjectIn(vobj, voptions, cx, _retval); } \
995
  NS_IMETHOD MakeObjectPropsNormal(JS::HandleValue vobj, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeObjectPropsNormal(vobj, cx); } \
996
  NS_IMETHOD IsDeadWrapper(JS::HandleValue obj, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsDeadWrapper(obj, _retval); } \
997
  NS_IMETHOD IsCrossProcessWrapper(JS::HandleValue obj, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsCrossProcessWrapper(obj, _retval); } \
998
  NS_IMETHOD GetCrossProcessWrapperTag(JS::HandleValue obj, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCrossProcessWrapperTag(obj, _retval); } \
999
  NS_IMETHOD PermitCPOWsInScope(JS::HandleValue obj) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PermitCPOWsInScope(obj); } \
1000
  NS_IMETHOD RecomputeWrappers(JS::HandleValue vobj, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RecomputeWrappers(vobj, cx); } \
1001
  NS_IMETHOD SetWantXrays(JS::HandleValue vscope, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWantXrays(vscope, cx); } \
1002
  NS_IMETHOD ForcePermissiveCOWs(JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForcePermissiveCOWs(cx); } \
1003
  NS_IMETHOD Dispatch(JS::HandleValue runnable, JS::HandleValue scope, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Dispatch(runnable, scope, cx); } \
1004
  NS_IMETHOD GetStrict(JSContext* cx, bool *aStrict) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStrict(cx, aStrict); } \
1005
  NS_IMETHOD SetStrict(JSContext* cx, bool aStrict) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStrict(cx, aStrict); } \
1006
  NS_IMETHOD GetWerror(JSContext* cx, bool *aWerror) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWerror(cx, aWerror); } \
1007
  NS_IMETHOD SetWerror(JSContext* cx, bool aWerror) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWerror(cx, aWerror); } \
1008
  NS_IMETHOD GetStrict_mode(JSContext* cx, bool *aStrict_mode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStrict_mode(cx, aStrict_mode); } \
1009
  NS_IMETHOD SetStrict_mode(JSContext* cx, bool aStrict_mode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStrict_mode(cx, aStrict_mode); } \
1010
  NS_IMETHOD GetIon(JSContext* cx, bool *aIon) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIon(cx, aIon); } \
1011
  NS_IMETHOD SetIon(JSContext* cx, bool aIon) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIon(cx, aIon); } \
1012
  NS_IMETHOD GetIsInAutomation(bool *aIsInAutomation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsInAutomation(aIsInAutomation); } \
1013
  NS_IMETHOD CrashIfNotInAutomation(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CrashIfNotInAutomation(); } \
1014
  NS_IMETHOD SetGCZeal(int32_t zeal, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGCZeal(zeal, cx); } \
1015
  NS_IMETHOD NukeSandbox(JS::HandleValue obj, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NukeSandbox(obj, cx); } \
1016
  NS_IMETHOD BlockScriptForGlobal(JS::HandleValue global, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BlockScriptForGlobal(global, cx); } \
1017
  NS_IMETHOD UnblockScriptForGlobal(JS::HandleValue global, JSContext* cx) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnblockScriptForGlobal(global, cx); } \
1018
  NS_IMETHOD IsXrayWrapper(JS::HandleValue obj, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsXrayWrapper(obj, _retval); } \
1019
  NS_IMETHOD WaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->WaiveXrays(aVal, cx, _retval); } \
1020
  NS_IMETHOD UnwaiveXrays(JS::HandleValue aVal, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnwaiveXrays(aVal, cx, _retval); } \
1021
  NS_IMETHOD GetClassName(JS::HandleValue aObj, bool aUnwrap, JSContext* cx, char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassName(aObj, aUnwrap, cx, _retval); } \
1022
  NS_IMETHOD GetDOMClassInfo(const nsAString& aClassName, nsIClassInfo **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDOMClassInfo(aClassName, _retval); } \
1023
  NS_IMETHOD GetIncumbentGlobal(JS::HandleValue callback, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIncumbentGlobal(callback, cx, _retval); } \
1024
  NS_IMETHOD GenerateXPCWrappedJS(JS::HandleValue obj, JS::HandleValue scope, JSContext* cx, nsISupports **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GenerateXPCWrappedJS(obj, scope, cx, _retval); } \
1025
  NS_IMETHOD GetWatchdogTimestamp(const nsAString& aCategory, PRTime *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWatchdogTimestamp(aCategory, _retval); } \
1026
  NS_IMETHOD GetJSEngineTelemetryValue(JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetJSEngineTelemetryValue(cx, _retval); } \
1027
  NS_IMETHOD CloneInto(JS::HandleValue value, JS::HandleValue scope, JS::HandleValue options, JSContext* cx, JS::MutableHandleValue _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneInto(value, scope, options, cx, _retval); } \
1028
  NS_IMETHOD GetWebIDLCallerPrincipal(nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebIDLCallerPrincipal(_retval); } \
1029
  NS_IMETHOD GetObjectPrincipal(JS::HandleValue obj, JSContext* cx, nsIPrincipal **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObjectPrincipal(obj, cx, _retval); } \
1030
  NS_IMETHOD GetRealmLocation(JS::HandleValue obj, JSContext* cx, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRealmLocation(obj, cx, _retval); } \
1031
  NS_IMETHOD Now(double *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Now(_retval); } \
1032
  NS_IMETHOD ReadUTF8File(nsIFile *file, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadUTF8File(file, _retval); } \
1033
  NS_IMETHOD ReadUTF8URI(nsIURI *url, nsACString& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadUTF8URI(url, _retval); } \
1034
  NS_IMETHOD BlockThreadedExecution(nsIBlockThreadedExecutionCallback *aBlockedCallback) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BlockThreadedExecution(aBlockedCallback); } \
1035
  NS_IMETHOD UnblockThreadedExecution(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnblockThreadedExecution(); } \
1036
  NS_IMETHOD RecordReplayDirective(int32_t directive) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RecordReplayDirective(directive); } \
1037
  NS_IMETHOD CreateSpellChecker(nsIEditorSpellCheck **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSpellChecker(_retval); } \
1038
  NS_IMETHOD CreateCommandLine(nsISupports **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCommandLine(_retval); } \
1039
  NS_IMETHOD CreateCommandParams(nsICommandParams **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCommandParams(_retval); } \
1040
  NS_IMETHOD CreateLoadContext(nsILoadContext **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateLoadContext(_retval); } \
1041
  NS_IMETHOD CreatePrivateLoadContext(nsILoadContext **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreatePrivateLoadContext(_retval); } \
1042
  NS_IMETHOD CreatePersistentProperties(nsIPersistentProperties **_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CreatePersistentProperties(_retval); } 
1043
1044
1045
/* starting interface:    nsIXPCComponentsBase */
1046
#define NS_IXPCCOMPONENTSBASE_IID_STR "eeeada2f-86c0-4609-b2bf-4bf2351b1ce6"
1047
1048
#define NS_IXPCCOMPONENTSBASE_IID \
1049
  {0xeeeada2f, 0x86c0, 0x4609, \
1050
    { 0xb2, 0xbf, 0x4b, 0xf2, 0x35, 0x1b, 0x1c, 0xe6 }}
1051
1052
class NS_NO_VTABLE nsIXPCComponentsBase : public nsISupports {
1053
 public:
1054
1055
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTSBASE_IID)
1056
1057
  /* readonly attribute nsIXPCComponents_Interfaces interfaces; */
1058
  NS_IMETHOD GetInterfaces(nsIXPCComponents_Interfaces **aInterfaces) = 0;
1059
1060
  /* readonly attribute nsIXPCComponents_InterfacesByID interfacesByID; */
1061
  NS_IMETHOD GetInterfacesByID(nsIXPCComponents_InterfacesByID **aInterfacesByID) = 0;
1062
1063
  /* readonly attribute nsIXPCComponents_Results results; */
1064
  NS_IMETHOD GetResults(nsIXPCComponents_Results **aResults) = 0;
1065
1066
  /* boolean isSuccessCode (in nsresult result); */
1067
  NS_IMETHOD IsSuccessCode(nsresult result, bool *_retval) = 0;
1068
1069
};
1070
1071
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponentsBase, NS_IXPCCOMPONENTSBASE_IID)
1072
1073
/* Use this macro when declaring classes that implement this interface. */
1074
#define NS_DECL_NSIXPCCOMPONENTSBASE \
1075
  NS_IMETHOD GetInterfaces(nsIXPCComponents_Interfaces **aInterfaces) override; \
1076
  NS_IMETHOD GetInterfacesByID(nsIXPCComponents_InterfacesByID **aInterfacesByID) override; \
1077
  NS_IMETHOD GetResults(nsIXPCComponents_Results **aResults) override; \
1078
  NS_IMETHOD IsSuccessCode(nsresult result, bool *_retval) override; 
1079
1080
/* Use this macro when declaring the members of this interface when the
1081
   class doesn't implement the interface. This is useful for forwarding. */
1082
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTSBASE \
1083
  nsresult GetInterfaces(nsIXPCComponents_Interfaces **aInterfaces); \
1084
  nsresult GetInterfacesByID(nsIXPCComponents_InterfacesByID **aInterfacesByID); \
1085
  nsresult GetResults(nsIXPCComponents_Results **aResults); \
1086
  nsresult IsSuccessCode(nsresult result, bool *_retval); 
1087
1088
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
1089
#define NS_FORWARD_NSIXPCCOMPONENTSBASE(_to) \
1090
4
  NS_IMETHOD GetInterfaces(nsIXPCComponents_Interfaces **aInterfaces) override { return _to GetInterfaces(aInterfaces); } \
1091
0
  NS_IMETHOD GetInterfacesByID(nsIXPCComponents_InterfacesByID **aInterfacesByID) override { return _to GetInterfacesByID(aInterfacesByID); } \
1092
3
  NS_IMETHOD GetResults(nsIXPCComponents_Results **aResults) override { return _to GetResults(aResults); } \
1093
0
  NS_IMETHOD IsSuccessCode(nsresult result, bool *_retval) override { return _to IsSuccessCode(result, _retval); } 
1094
1095
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
1096
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTSBASE(_to) \
1097
  NS_IMETHOD GetInterfaces(nsIXPCComponents_Interfaces **aInterfaces) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaces(aInterfaces); } \
1098
  NS_IMETHOD GetInterfacesByID(nsIXPCComponents_InterfacesByID **aInterfacesByID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfacesByID(aInterfacesByID); } \
1099
  NS_IMETHOD GetResults(nsIXPCComponents_Results **aResults) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResults(aResults); } \
1100
  NS_IMETHOD IsSuccessCode(nsresult result, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSuccessCode(result, _retval); } 
1101
1102
1103
/* starting interface:    nsIXPCComponents */
1104
#define NS_IXPCCOMPONENTS_IID_STR "aa28aaf6-70ce-4b03-9514-afe43c7dfda8"
1105
1106
#define NS_IXPCCOMPONENTS_IID \
1107
  {0xaa28aaf6, 0x70ce, 0x4b03, \
1108
    { 0x95, 0x14, 0xaf, 0xe4, 0x3c, 0x7d, 0xfd, 0xa8 }}
1109
1110
class NS_NO_VTABLE nsIXPCComponents : public nsIXPCComponentsBase {
1111
 public:
1112
1113
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCCOMPONENTS_IID)
1114
1115
  /* readonly attribute nsIXPCComponents_Classes classes; */
1116
  NS_IMETHOD GetClasses(nsIXPCComponents_Classes **aClasses) = 0;
1117
1118
  /* readonly attribute nsIXPCComponents_ClassesByID classesByID; */
1119
  NS_IMETHOD GetClassesByID(nsIXPCComponents_ClassesByID **aClassesByID) = 0;
1120
1121
  /* readonly attribute nsIStackFrame stack; */
1122
  NS_IMETHOD GetStack(nsIStackFrame **aStack) = 0;
1123
1124
  /* readonly attribute nsIComponentManager manager; */
1125
  NS_IMETHOD GetManager(nsIComponentManager **aManager) = 0;
1126
1127
  /* readonly attribute nsIXPCComponents_Utils utils; */
1128
  NS_IMETHOD GetUtils(nsIXPCComponents_Utils **aUtils) = 0;
1129
1130
  /* readonly attribute nsIXPCComponents_ID ID; */
1131
  NS_IMETHOD GetID(nsIXPCComponents_ID **aID) = 0;
1132
1133
  /* readonly attribute nsIXPCComponents_Exception Exception; */
1134
  NS_IMETHOD GetException(nsIXPCComponents_Exception **aException) = 0;
1135
1136
  /* readonly attribute nsIXPCComponents_Constructor Constructor; */
1137
  NS_IMETHOD GetConstructor(nsIXPCComponents_Constructor **aConstructor) = 0;
1138
1139
  /* [implicit_jscontext] attribute jsval returnCode; */
1140
  NS_IMETHOD GetReturnCode(JSContext* cx, JS::MutableHandleValue aReturnCode) = 0;
1141
  NS_IMETHOD SetReturnCode(JSContext* cx, JS::HandleValue aReturnCode) = 0;
1142
1143
};
1144
1145
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCComponents, NS_IXPCCOMPONENTS_IID)
1146
1147
/* Use this macro when declaring classes that implement this interface. */
1148
#define NS_DECL_NSIXPCCOMPONENTS \
1149
  NS_IMETHOD GetClasses(nsIXPCComponents_Classes **aClasses) override; \
1150
  NS_IMETHOD GetClassesByID(nsIXPCComponents_ClassesByID **aClassesByID) override; \
1151
  NS_IMETHOD GetStack(nsIStackFrame **aStack) override; \
1152
  NS_IMETHOD GetManager(nsIComponentManager **aManager) override; \
1153
  NS_IMETHOD GetUtils(nsIXPCComponents_Utils **aUtils) override; \
1154
  NS_IMETHOD GetID(nsIXPCComponents_ID **aID) override; \
1155
  NS_IMETHOD GetException(nsIXPCComponents_Exception **aException) override; \
1156
  NS_IMETHOD GetConstructor(nsIXPCComponents_Constructor **aConstructor) override; \
1157
  NS_IMETHOD GetReturnCode(JSContext* cx, JS::MutableHandleValue aReturnCode) override; \
1158
  NS_IMETHOD SetReturnCode(JSContext* cx, JS::HandleValue aReturnCode) override; 
1159
1160
/* Use this macro when declaring the members of this interface when the
1161
   class doesn't implement the interface. This is useful for forwarding. */
1162
#define NS_DECL_NON_VIRTUAL_NSIXPCCOMPONENTS \
1163
  nsresult GetClasses(nsIXPCComponents_Classes **aClasses); \
1164
  nsresult GetClassesByID(nsIXPCComponents_ClassesByID **aClassesByID); \
1165
  nsresult GetStack(nsIStackFrame **aStack); \
1166
  nsresult GetManager(nsIComponentManager **aManager); \
1167
  nsresult GetUtils(nsIXPCComponents_Utils **aUtils); \
1168
  nsresult GetID(nsIXPCComponents_ID **aID); \
1169
  nsresult GetException(nsIXPCComponents_Exception **aException); \
1170
  nsresult GetConstructor(nsIXPCComponents_Constructor **aConstructor); \
1171
  nsresult GetReturnCode(JSContext* cx, JS::MutableHandleValue aReturnCode); \
1172
  nsresult SetReturnCode(JSContext* cx, JS::HandleValue aReturnCode); 
1173
1174
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
1175
#define NS_FORWARD_NSIXPCCOMPONENTS(_to) \
1176
  NS_IMETHOD GetClasses(nsIXPCComponents_Classes **aClasses) override { return _to GetClasses(aClasses); } \
1177
  NS_IMETHOD GetClassesByID(nsIXPCComponents_ClassesByID **aClassesByID) override { return _to GetClassesByID(aClassesByID); } \
1178
  NS_IMETHOD GetStack(nsIStackFrame **aStack) override { return _to GetStack(aStack); } \
1179
  NS_IMETHOD GetManager(nsIComponentManager **aManager) override { return _to GetManager(aManager); } \
1180
  NS_IMETHOD GetUtils(nsIXPCComponents_Utils **aUtils) override { return _to GetUtils(aUtils); } \
1181
  NS_IMETHOD GetID(nsIXPCComponents_ID **aID) override { return _to GetID(aID); } \
1182
  NS_IMETHOD GetException(nsIXPCComponents_Exception **aException) override { return _to GetException(aException); } \
1183
  NS_IMETHOD GetConstructor(nsIXPCComponents_Constructor **aConstructor) override { return _to GetConstructor(aConstructor); } \
1184
  NS_IMETHOD GetReturnCode(JSContext* cx, JS::MutableHandleValue aReturnCode) override { return _to GetReturnCode(cx, aReturnCode); } \
1185
  NS_IMETHOD SetReturnCode(JSContext* cx, JS::HandleValue aReturnCode) override { return _to SetReturnCode(cx, aReturnCode); } 
1186
1187
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
1188
#define NS_FORWARD_SAFE_NSIXPCCOMPONENTS(_to) \
1189
  NS_IMETHOD GetClasses(nsIXPCComponents_Classes **aClasses) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClasses(aClasses); } \
1190
  NS_IMETHOD GetClassesByID(nsIXPCComponents_ClassesByID **aClassesByID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassesByID(aClassesByID); } \
1191
  NS_IMETHOD GetStack(nsIStackFrame **aStack) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStack(aStack); } \
1192
  NS_IMETHOD GetManager(nsIComponentManager **aManager) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManager(aManager); } \
1193
  NS_IMETHOD GetUtils(nsIXPCComponents_Utils **aUtils) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUtils(aUtils); } \
1194
  NS_IMETHOD GetID(nsIXPCComponents_ID **aID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetID(aID); } \
1195
  NS_IMETHOD GetException(nsIXPCComponents_Exception **aException) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetException(aException); } \
1196
  NS_IMETHOD GetConstructor(nsIXPCComponents_Constructor **aConstructor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConstructor(aConstructor); } \
1197
  NS_IMETHOD GetReturnCode(JSContext* cx, JS::MutableHandleValue aReturnCode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReturnCode(cx, aReturnCode); } \
1198
  NS_IMETHOD SetReturnCode(JSContext* cx, JS::HandleValue aReturnCode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReturnCode(cx, aReturnCode); } 
1199
1200
1201
#endif /* __gen_xpccomponents_h__ */