Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM CredentialManagement.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #ifndef mozilla_dom_CredentialManagementBinding_h
4 : #define mozilla_dom_CredentialManagementBinding_h
5 :
6 : #include "WebAuthenticationBinding.h"
7 : #include "js/RootingAPI.h"
8 : #include "jspubtd.h"
9 : #include "mozilla/ErrorResult.h"
10 : #include "mozilla/dom/BindingDeclarations.h"
11 : #include "mozilla/dom/Nullable.h"
12 :
13 : namespace mozilla {
14 : namespace dom {
15 :
16 : class Credential;
17 : struct CredentialAtoms;
18 : struct CredentialCreationOptionsAtoms;
19 : struct CredentialRequestOptionsAtoms;
20 : class CredentialsContainer;
21 : struct CredentialsContainerAtoms;
22 : struct MakeCredentialOptions;
23 : struct NativePropertyHooks;
24 : class ProtoAndIfaceCache;
25 : struct PublicKeyCredentialRequestOptions;
26 :
27 : } // namespace dom
28 : } // namespace mozilla
29 :
30 : namespace mozilla {
31 : namespace dom {
32 :
33 0 : struct CredentialCreationOptions : public DictionaryBase
34 : {
35 : MOZ_INIT_OUTSIDE_CTOR MakeCredentialOptions mPublicKey;
36 :
37 : CredentialCreationOptions();
38 :
39 0 : explicit inline CredentialCreationOptions(const FastDictionaryInitializer& )
40 0 : : mPublicKey(FastDictionaryInitializer())
41 : {
42 : // Do nothing here; this is used by our "Fast" subclass
43 0 : }
44 :
45 : private:
46 : CredentialCreationOptions(const CredentialCreationOptions&) = delete;
47 : CredentialCreationOptions& operator=(const CredentialCreationOptions&) = delete;
48 :
49 : static bool
50 : InitIds(JSContext* cx, CredentialCreationOptionsAtoms* atomsCache);
51 :
52 : public:
53 : bool
54 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
55 :
56 : bool
57 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
58 :
59 : void
60 : TraceDictionary(JSTracer* trc);
61 : };
62 :
63 : namespace binding_detail {
64 0 : struct FastCredentialCreationOptions : public CredentialCreationOptions
65 : {
66 0 : inline FastCredentialCreationOptions()
67 0 : : CredentialCreationOptions(FastDictionaryInitializer())
68 : {
69 : // Doesn't matter what int we pass to the parent constructor
70 0 : }
71 : };
72 : } // namespace binding_detail
73 :
74 :
75 0 : struct CredentialRequestOptions : public DictionaryBase
76 : {
77 : MOZ_INIT_OUTSIDE_CTOR PublicKeyCredentialRequestOptions mPublicKey;
78 :
79 : CredentialRequestOptions();
80 :
81 0 : explicit inline CredentialRequestOptions(const FastDictionaryInitializer& )
82 0 : : mPublicKey(FastDictionaryInitializer())
83 : {
84 : // Do nothing here; this is used by our "Fast" subclass
85 0 : }
86 :
87 : private:
88 : CredentialRequestOptions(const CredentialRequestOptions&) = delete;
89 : CredentialRequestOptions& operator=(const CredentialRequestOptions&) = delete;
90 :
91 : static bool
92 : InitIds(JSContext* cx, CredentialRequestOptionsAtoms* atomsCache);
93 :
94 : public:
95 : bool
96 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
97 :
98 : bool
99 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
100 :
101 : void
102 : TraceDictionary(JSTracer* trc);
103 : };
104 :
105 : namespace binding_detail {
106 0 : struct FastCredentialRequestOptions : public CredentialRequestOptions
107 : {
108 0 : inline FastCredentialRequestOptions()
109 0 : : CredentialRequestOptions(FastDictionaryInitializer())
110 : {
111 : // Doesn't matter what int we pass to the parent constructor
112 0 : }
113 : };
114 : } // namespace binding_detail
115 :
116 :
117 : namespace CredentialBinding {
118 :
119 : typedef mozilla::dom::Credential NativeType;
120 :
121 : bool
122 : ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
123 :
124 : JSObject*
125 : DefineDOMInterface(JSContext* aCx, JS::Handle<JSObject*> aGlobal, JS::Handle<jsid> id, bool aDefineOnGlobal);
126 :
127 : const JSClass*
128 : GetJSClass();
129 :
130 : bool
131 : Wrap(JSContext* aCx, mozilla::dom::Credential* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
132 :
133 : template <class T>
134 0 : inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
135 : {
136 0 : JS::Rooted<JSObject*> reflector(aCx);
137 0 : return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
138 : }
139 :
140 : // We declare this as an array so that retrieving a pointer to this
141 : // binding's property hooks only requires compile/link-time resolvable
142 : // address arithmetic. Declaring it as a pointer instead would require
143 : // doing a run-time load to fetch a pointer to this binding's property
144 : // hooks. And then structures which embedded a pointer to this structure
145 : // would require a run-time load for proper initialization, which would
146 : // then induce static constructors. Lots of static constructors.
147 : extern const NativePropertyHooks sNativePropertyHooks[];
148 :
149 : void
150 : CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
151 :
152 : JS::Handle<JSObject*>
153 : GetProtoObjectHandle(JSContext* aCx);
154 :
155 : JSObject*
156 : GetProtoObject(JSContext* aCx);
157 :
158 : JS::Handle<JSObject*>
159 : GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true);
160 :
161 : JSObject*
162 : GetConstructorObject(JSContext* aCx);
163 :
164 : } // namespace CredentialBinding
165 :
166 :
167 :
168 : namespace CredentialsContainerBinding {
169 :
170 : typedef mozilla::dom::CredentialsContainer NativeType;
171 :
172 : bool
173 : ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
174 :
175 : JSObject*
176 : DefineDOMInterface(JSContext* aCx, JS::Handle<JSObject*> aGlobal, JS::Handle<jsid> id, bool aDefineOnGlobal);
177 :
178 : const JSClass*
179 : GetJSClass();
180 :
181 : bool
182 : Wrap(JSContext* aCx, mozilla::dom::CredentialsContainer* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
183 :
184 : template <class T>
185 0 : inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
186 : {
187 0 : JS::Rooted<JSObject*> reflector(aCx);
188 0 : return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
189 : }
190 :
191 : // We declare this as an array so that retrieving a pointer to this
192 : // binding's property hooks only requires compile/link-time resolvable
193 : // address arithmetic. Declaring it as a pointer instead would require
194 : // doing a run-time load to fetch a pointer to this binding's property
195 : // hooks. And then structures which embedded a pointer to this structure
196 : // would require a run-time load for proper initialization, which would
197 : // then induce static constructors. Lots of static constructors.
198 : extern const NativePropertyHooks sNativePropertyHooks[];
199 :
200 : void
201 : CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
202 :
203 : JS::Handle<JSObject*>
204 : GetProtoObjectHandle(JSContext* aCx);
205 :
206 : JS::Handle<JSObject*>
207 : GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true);
208 :
209 : JSObject*
210 : GetConstructorObject(JSContext* aCx);
211 :
212 : } // namespace CredentialsContainerBinding
213 :
214 :
215 :
216 : } // namespace dom
217 : } // namespace mozilla
218 :
219 : #endif // mozilla_dom_CredentialManagementBinding_h
|