Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/nsIXPCScriptable.h
Line
Count
Source
1
/*
2
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /src/mozilla-central/js/xpconnect/idl/nsIXPCScriptable.idl
3
 */
4
5
#ifndef __gen_nsIXPCScriptable_h__
6
#define __gen_nsIXPCScriptable_h__
7
8
9
#ifndef __gen_nsISupports_h__
10
#include "nsISupports.h"
11
#endif
12
13
#ifndef __gen_nsIClassInfo_h__
14
#include "nsIClassInfo.h"
15
#endif
16
17
#include "js/Value.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
#ifdef XP_WIN
24
#undef GetClassName
25
#endif
26
#include "js/TypeDecls.h"
27
struct JSFreeOp;
28
namespace js {
29
struct Class;
30
}
31
class nsIXPConnectWrappedNative; /* forward declaration */
32
33
    // nsIXPCScriptable flags (only 32 bits available!). They are defined via
34
    // #defines so they can be used in #ifndef guards in xpc_map_end.h.
35
206
    #define XPC_SCRIPTABLE_WANT_PRECREATE                   (1 <<  0)
36
    // (1 << 1) is unused
37
    // (1 << 2) is unused
38
174
    #define XPC_SCRIPTABLE_WANT_ENUMERATE                   (1 <<  3)
39
193
    #define XPC_SCRIPTABLE_WANT_NEWENUMERATE                (1 <<  4)
40
1.62M
    #define XPC_SCRIPTABLE_WANT_RESOLVE                     (1 <<  5)
41
162
    #define XPC_SCRIPTABLE_WANT_FINALIZE                    (1 <<  6)
42
71
    #define XPC_SCRIPTABLE_WANT_CALL                        (1 <<  7)
43
1.62M
    #define XPC_SCRIPTABLE_WANT_CONSTRUCT                   (1 <<  8)
44
1.62M
    #define XPC_SCRIPTABLE_WANT_HASINSTANCE                 (1 <<  9)
45
162
    #define XPC_SCRIPTABLE_USE_JSSTUB_FOR_ADDPROPERTY       (1 << 10)
46
162
    #define XPC_SCRIPTABLE_USE_JSSTUB_FOR_DELPROPERTY       (1 << 11)
47
    // (1 << 12) is unused
48
136
    #define XPC_SCRIPTABLE_DONT_ENUM_QUERY_INTERFACE        (1 << 13)
49
    // (1 << 14) is unused
50
    // (1 << 15) is unused
51
341
    #define XPC_SCRIPTABLE_ALLOW_PROP_MODS_DURING_RESOLVE   (1 << 16)
52
    // (1 << 17) is unused
53
191
    #define XPC_SCRIPTABLE_IS_GLOBAL_OBJECT                 (1 << 18)
54
134
    #define XPC_SCRIPTABLE_DONT_REFLECT_INTERFACE_NAMES     (1 << 19)
55
56
/* starting interface:    nsIXPCScriptable */
57
#define NS_IXPCSCRIPTABLE_IID_STR "19b70b26-7c3f-437f-a04a-2a8f9e28b617"
58
59
#define NS_IXPCSCRIPTABLE_IID \
60
  {0x19b70b26, 0x7c3f, 0x437f, \
61
    { 0xa0, 0x4a, 0x2a, 0x8f, 0x9e, 0x28, 0xb6, 0x17 }}
62
63
class nsIXPCScriptable : public nsISupports {
64
 public:
65
66
  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IXPCSCRIPTABLE_IID)
67
68
  /* readonly attribute AUTF8String className; */
69
  NS_IMETHOD GetClassName(nsACString& aClassName) = 0;
70
71
  /* [nostdcall,notxpcom] uint32_t getScriptableFlags (); */
72
  virtual uint32_t GetScriptableFlags(void) = 0;
73
74
  /* [nostdcall,notxpcom] jsClassPtr getClass (); */
75
  virtual const js::Class * GetClass(void) = 0;
76
77
  /* [nostdcall,notxpcom] JSClassPtr getJSClass (); */
78
  virtual const JSClass * GetJSClass(void) = 0;
79
80
  /* void preCreate (in nsISupports nativeObj, in JSContextPtr cx, in JSObjectPtr globalObj, out JSObjectPtr parentObj); */
81
  NS_IMETHOD PreCreate(nsISupports *nativeObj, JSContext * cx, JSObject * globalObj, JSObject * * parentObj) = 0;
82
83
  /* boolean enumerate (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj); */
84
  NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, bool *_retval) = 0;
85
86
  /* boolean newEnumerate (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in JSAutoIdVector properties); */
87
  NS_IMETHOD NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::AutoIdVector & properties, bool *_retval) = 0;
88
89
  /* boolean resolve (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsid id, out boolean resolvedp); */
90
  NS_IMETHOD Resolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, bool *resolvedp, bool *_retval) = 0;
91
92
  /* void finalize (in nsIXPConnectWrappedNative wrapper, in JSFreeOpPtr fop, in JSObjectPtr obj); */
93
  NS_IMETHOD Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSObject * obj) = 0;
94
95
  /* boolean call (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in JSCallArgsRef args); */
96
  NS_IMETHOD Call(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) = 0;
97
98
  /* boolean construct (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in JSCallArgsRef args); */
99
  NS_IMETHOD Construct(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) = 0;
100
101
  /* boolean hasInstance (in nsIXPConnectWrappedNative wrapper, in JSContextPtr cx, in JSObjectPtr obj, in jsval val, out boolean bp); */
102
  NS_IMETHOD HasInstance(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::HandleValue val, bool *bp, bool *_retval) = 0;
103
104
     #define GET_IT(f_, c_) \
105
1.62M
    bool f_() { \
106
1.62M
        return 0 != (GetScriptableFlags() & XPC_SCRIPTABLE_##c_); \
107
1.62M
    }
nsIXPCScriptable::WantPreCreate()
Line
Count
Source
105
26
    bool f_() { \
106
26
        return 0 != (GetScriptableFlags() & XPC_SCRIPTABLE_##c_); \
107
26
    }
Unexecuted instantiation: nsIXPCScriptable::WantEnumerate()
Unexecuted instantiation: nsIXPCScriptable::WantNewEnumerate()
nsIXPCScriptable::WantResolve()
Line
Count
Source
105
1.62M
    bool f_() { \
106
1.62M
        return 0 != (GetScriptableFlags() & XPC_SCRIPTABLE_##c_); \
107
1.62M
    }
Unexecuted instantiation: nsIXPCScriptable::WantFinalize()
Unexecuted instantiation: nsIXPCScriptable::WantCall()
Unexecuted instantiation: nsIXPCScriptable::WantConstruct()
Unexecuted instantiation: nsIXPCScriptable::WantHasInstance()
Unexecuted instantiation: nsIXPCScriptable::UseJSStubForAddProperty()
Unexecuted instantiation: nsIXPCScriptable::UseJSStubForDelProperty()
nsIXPCScriptable::DontEnumQueryInterface()
Line
Count
Source
105
3
    bool f_() { \
106
3
        return 0 != (GetScriptableFlags() & XPC_SCRIPTABLE_##c_); \
107
3
    }
nsIXPCScriptable::AllowPropModsDuringResolve()
Line
Count
Source
105
60
    bool f_() { \
106
60
        return 0 != (GetScriptableFlags() & XPC_SCRIPTABLE_##c_); \
107
60
    }
Unexecuted instantiation: nsIXPCScriptable::IsGlobalObject()
nsIXPCScriptable::DontReflectInterfaceNames()
Line
Count
Source
105
1
    bool f_() { \
106
1
        return 0 != (GetScriptableFlags() & XPC_SCRIPTABLE_##c_); \
107
1
    }
108
    GET_IT(WantPreCreate,                WANT_PRECREATE)
109
    GET_IT(WantEnumerate,                WANT_ENUMERATE)
110
    GET_IT(WantNewEnumerate,             WANT_NEWENUMERATE)
111
    GET_IT(WantResolve,                  WANT_RESOLVE)
112
    GET_IT(WantFinalize,                 WANT_FINALIZE)
113
    GET_IT(WantCall,                     WANT_CALL)
114
    GET_IT(WantConstruct,                WANT_CONSTRUCT)
115
    GET_IT(WantHasInstance,              WANT_HASINSTANCE)
116
    GET_IT(UseJSStubForAddProperty,      USE_JSSTUB_FOR_ADDPROPERTY)
117
    GET_IT(UseJSStubForDelProperty,      USE_JSSTUB_FOR_DELPROPERTY)
118
    GET_IT(DontEnumQueryInterface,       DONT_ENUM_QUERY_INTERFACE)
119
    GET_IT(AllowPropModsDuringResolve,   ALLOW_PROP_MODS_DURING_RESOLVE)
120
    GET_IT(IsGlobalObject,               IS_GLOBAL_OBJECT)
121
    GET_IT(DontReflectInterfaceNames,    DONT_REFLECT_INTERFACE_NAMES)
122
    #undef GET_IT
123
};
124
125
  NS_DEFINE_STATIC_IID_ACCESSOR(nsIXPCScriptable, NS_IXPCSCRIPTABLE_IID)
126
127
/* Use this macro when declaring classes that implement this interface. */
128
#define NS_DECL_NSIXPCSCRIPTABLE \
129
  NS_IMETHOD GetClassName(nsACString& aClassName) override; \
130
  virtual uint32_t GetScriptableFlags(void) override; \
131
  virtual const js::Class * GetClass(void) override; \
132
  virtual const JSClass * GetJSClass(void) override; \
133
  NS_IMETHOD PreCreate(nsISupports *nativeObj, JSContext * cx, JSObject * globalObj, JSObject * * parentObj) override; \
134
  NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, bool *_retval) override; \
135
  NS_IMETHOD NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::AutoIdVector & properties, bool *_retval) override; \
136
  NS_IMETHOD Resolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, bool *resolvedp, bool *_retval) override; \
137
  NS_IMETHOD Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSObject * obj) override; \
138
  NS_IMETHOD Call(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) override; \
139
  NS_IMETHOD Construct(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) override; \
140
  NS_IMETHOD HasInstance(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::HandleValue val, bool *bp, bool *_retval) override; \
141
142
/* Use this macro when declaring the members of this interface when the
143
   class doesn't implement the interface. This is useful for forwarding. */
144
#define NS_DECL_NON_VIRTUAL_NSIXPCSCRIPTABLE \
145
  nsresult GetClassName(nsACString& aClassName); \
146
  uint32_t GetScriptableFlags(void); \
147
  const js::Class * GetClass(void); \
148
  const JSClass * GetJSClass(void); \
149
  nsresult PreCreate(nsISupports *nativeObj, JSContext * cx, JSObject * globalObj, JSObject * * parentObj); \
150
  nsresult Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, bool *_retval); \
151
  nsresult NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::AutoIdVector & properties, bool *_retval); \
152
  nsresult Resolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, bool *resolvedp, bool *_retval); \
153
  nsresult Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSObject * obj); \
154
  nsresult Call(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval); \
155
  nsresult Construct(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval); \
156
  nsresult HasInstance(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::HandleValue val, bool *bp, bool *_retval); \
157
158
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
159
#define NS_FORWARD_NSIXPCSCRIPTABLE(_to) \
160
  NS_IMETHOD GetClassName(nsACString& aClassName) override { return _to GetClassName(aClassName); } \
161
  virtual uint32_t GetScriptableFlags(void) override { return _to GetScriptableFlags(); } \
162
  virtual const js::Class * GetClass(void) override { return _to GetClass(); } \
163
  virtual const JSClass * GetJSClass(void) override { return _to GetJSClass(); } \
164
  NS_IMETHOD PreCreate(nsISupports *nativeObj, JSContext * cx, JSObject * globalObj, JSObject * * parentObj) override { return _to PreCreate(nativeObj, cx, globalObj, parentObj); } \
165
  NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, bool *_retval) override { return _to Enumerate(wrapper, cx, obj, _retval); } \
166
  NS_IMETHOD NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::AutoIdVector & properties, bool *_retval) override { return _to NewEnumerate(wrapper, cx, obj, properties, _retval); } \
167
  NS_IMETHOD Resolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, bool *resolvedp, bool *_retval) override { return _to Resolve(wrapper, cx, obj, id, resolvedp, _retval); } \
168
  NS_IMETHOD Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSObject * obj) override { return _to Finalize(wrapper, fop, obj); } \
169
  NS_IMETHOD Call(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) override { return _to Call(wrapper, cx, obj, args, _retval); } \
170
  NS_IMETHOD Construct(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) override { return _to Construct(wrapper, cx, obj, args, _retval); } \
171
  NS_IMETHOD HasInstance(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::HandleValue val, bool *bp, bool *_retval) override { return _to HasInstance(wrapper, cx, obj, val, bp, _retval); } \
172
173
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
174
#define NS_FORWARD_SAFE_NSIXPCSCRIPTABLE(_to) \
175
  NS_IMETHOD GetClassName(nsACString& aClassName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassName(aClassName); } \
176
  virtual uint32_t GetScriptableFlags(void) override; \
177
  virtual const js::Class * GetClass(void) override; \
178
  virtual const JSClass * GetJSClass(void) override; \
179
  NS_IMETHOD PreCreate(nsISupports *nativeObj, JSContext * cx, JSObject * globalObj, JSObject * * parentObj) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PreCreate(nativeObj, cx, globalObj, parentObj); } \
180
  NS_IMETHOD Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Enumerate(wrapper, cx, obj, _retval); } \
181
  NS_IMETHOD NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::AutoIdVector & properties, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NewEnumerate(wrapper, cx, obj, properties, _retval); } \
182
  NS_IMETHOD Resolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, bool *resolvedp, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Resolve(wrapper, cx, obj, id, resolvedp, _retval); } \
183
  NS_IMETHOD Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSObject * obj) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Finalize(wrapper, fop, obj); } \
184
  NS_IMETHOD Call(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Call(wrapper, cx, obj, args, _retval); } \
185
  NS_IMETHOD Construct(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs & args, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Construct(wrapper, cx, obj, args, _retval); } \
186
  NS_IMETHOD HasInstance(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::HandleValue val, bool *bp, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HasInstance(wrapper, cx, obj, val, bp, _retval); } \
187
188
189
#endif /* __gen_nsIXPCScriptable_h__ */