Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM Fetch.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #include "FetchBinding.h"
4 : #include "mozilla/dom/Blob.h"
5 : #include "mozilla/dom/FormData.h"
6 : #include "mozilla/dom/NonRefcountedDOMObject.h"
7 : #include "mozilla/dom/URLSearchParams.h"
8 :
9 : namespace mozilla {
10 : namespace dom {
11 :
12 : void
13 0 : ImplCycleCollectionTraverse(nsCycleCollectionTraversalCallback& aCallback, OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString& aUnion, const char* aName, uint32_t aFlags)
14 : {
15 0 : if (aUnion.IsBlob()) {
16 0 : ImplCycleCollectionTraverse(aCallback, aUnion.GetAsBlob(), "mBlob", aFlags);
17 0 : } else if (aUnion.IsFormData()) {
18 0 : ImplCycleCollectionTraverse(aCallback, aUnion.GetAsFormData(), "mFormData", aFlags);
19 0 : } else if (aUnion.IsURLSearchParams()) {
20 0 : ImplCycleCollectionTraverse(aCallback, aUnion.GetAsURLSearchParams(), "mURLSearchParams", aFlags);
21 : }
22 0 : }
23 :
24 :
25 : void
26 0 : ImplCycleCollectionUnlink(OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString& aUnion)
27 : {
28 0 : aUnion.Uninit();
29 0 : }
30 :
31 :
32 : bool
33 0 : BlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const
34 : {
35 0 : switch (mType) {
36 : case eUninitialized: {
37 0 : return false;
38 : break;
39 : }
40 : case eBlob: {
41 0 : if (!GetOrCreateDOMReflector(cx, mValue.mBlob.Value(), rval)) {
42 0 : MOZ_ASSERT(true || JS_IsExceptionPending(cx));
43 0 : return false;
44 : }
45 0 : return true;
46 : break;
47 : }
48 : case eArrayBufferView: {
49 0 : rval.setObject(*mValue.mArrayBufferView.Value().Obj());
50 0 : if (!MaybeWrapNonDOMObjectValue(cx, rval)) {
51 0 : return false;
52 : }
53 0 : return true;
54 : break;
55 : }
56 : case eArrayBuffer: {
57 0 : rval.setObject(*mValue.mArrayBuffer.Value().Obj());
58 0 : if (!MaybeWrapNonDOMObjectValue(cx, rval)) {
59 0 : return false;
60 : }
61 0 : return true;
62 : break;
63 : }
64 : case eFormData: {
65 0 : if (!GetOrCreateDOMReflector(cx, mValue.mFormData.Value(), rval)) {
66 0 : MOZ_ASSERT(true || JS_IsExceptionPending(cx));
67 0 : return false;
68 : }
69 0 : return true;
70 : break;
71 : }
72 : case eURLSearchParams: {
73 0 : if (!GetOrCreateDOMReflector(cx, mValue.mURLSearchParams.Value(), rval)) {
74 0 : MOZ_ASSERT(true || JS_IsExceptionPending(cx));
75 0 : return false;
76 : }
77 0 : return true;
78 : break;
79 : }
80 : case eUSVString: {
81 0 : if (!xpc::NonVoidStringToJsval(cx, mValue.mUSVString.Value(), rval)) {
82 0 : return false;
83 : }
84 0 : return true;
85 : break;
86 : }
87 : default: {
88 0 : return false;
89 : break;
90 : }
91 : }
92 :
93 : return false;
94 : }
95 :
96 :
97 : OwningNonNull<mozilla::dom::Blob>&
98 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::RawSetAsBlob()
99 : {
100 0 : if (mType == eBlob) {
101 0 : return mValue.mBlob.Value();
102 : }
103 0 : MOZ_ASSERT(mType == eUninitialized);
104 0 : mType = eBlob;
105 0 : return mValue.mBlob.SetValue();
106 : }
107 :
108 : OwningNonNull<mozilla::dom::Blob>&
109 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::SetAsBlob()
110 : {
111 0 : if (mType == eBlob) {
112 0 : return mValue.mBlob.Value();
113 : }
114 0 : Uninit();
115 0 : mType = eBlob;
116 0 : return mValue.mBlob.SetValue();
117 : }
118 :
119 : bool
120 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TrySetToBlob(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl)
121 : {
122 0 : tryNext = false;
123 : { // scope for memberSlot
124 0 : OwningNonNull<mozilla::dom::Blob>& memberSlot = RawSetAsBlob();
125 : static_assert(IsRefcounted<mozilla::dom::Blob>::value, "We can only store refcounted classes.");{
126 0 : nsresult rv = UnwrapObject<prototypes::id::Blob, mozilla::dom::Blob>(value, memberSlot);
127 0 : if (NS_FAILED(rv)) {
128 0 : DestroyBlob();
129 0 : tryNext = true;
130 0 : return true;
131 : }
132 : }
133 : }
134 0 : return true;
135 : }
136 :
137 : void
138 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::DestroyBlob()
139 : {
140 0 : MOZ_ASSERT(IsBlob(), "Wrong type!");
141 0 : mValue.mBlob.Destroy();
142 0 : mType = eUninitialized;
143 0 : }
144 :
145 :
146 :
147 :
148 : ArrayBufferView&
149 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::RawSetAsArrayBufferView()
150 : {
151 0 : if (mType == eArrayBufferView) {
152 0 : return mValue.mArrayBufferView.Value();
153 : }
154 0 : MOZ_ASSERT(mType == eUninitialized);
155 0 : mType = eArrayBufferView;
156 0 : return mValue.mArrayBufferView.SetValue();
157 : }
158 :
159 : ArrayBufferView&
160 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::SetAsArrayBufferView()
161 : {
162 0 : if (mType == eArrayBufferView) {
163 0 : return mValue.mArrayBufferView.Value();
164 : }
165 0 : Uninit();
166 0 : mType = eArrayBufferView;
167 0 : return mValue.mArrayBufferView.SetValue();
168 : }
169 :
170 : bool
171 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TrySetToArrayBufferView(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl)
172 : {
173 0 : tryNext = false;
174 : { // scope for memberSlot
175 0 : ArrayBufferView& memberSlot = RawSetAsArrayBufferView();
176 0 : if (!memberSlot.Init(&value.toObject())) {
177 0 : DestroyArrayBufferView();
178 0 : tryNext = true;
179 0 : return true;
180 : }
181 : }
182 0 : return true;
183 : }
184 :
185 : void
186 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::DestroyArrayBufferView()
187 : {
188 0 : MOZ_ASSERT(IsArrayBufferView(), "Wrong type!");
189 0 : mValue.mArrayBufferView.Destroy();
190 0 : mType = eUninitialized;
191 0 : }
192 :
193 :
194 :
195 :
196 : ArrayBuffer&
197 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::RawSetAsArrayBuffer()
198 : {
199 0 : if (mType == eArrayBuffer) {
200 0 : return mValue.mArrayBuffer.Value();
201 : }
202 0 : MOZ_ASSERT(mType == eUninitialized);
203 0 : mType = eArrayBuffer;
204 0 : return mValue.mArrayBuffer.SetValue();
205 : }
206 :
207 : ArrayBuffer&
208 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::SetAsArrayBuffer()
209 : {
210 0 : if (mType == eArrayBuffer) {
211 0 : return mValue.mArrayBuffer.Value();
212 : }
213 0 : Uninit();
214 0 : mType = eArrayBuffer;
215 0 : return mValue.mArrayBuffer.SetValue();
216 : }
217 :
218 : bool
219 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TrySetToArrayBuffer(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl)
220 : {
221 0 : tryNext = false;
222 : { // scope for memberSlot
223 0 : ArrayBuffer& memberSlot = RawSetAsArrayBuffer();
224 0 : if (!memberSlot.Init(&value.toObject())) {
225 0 : DestroyArrayBuffer();
226 0 : tryNext = true;
227 0 : return true;
228 : }
229 : }
230 0 : return true;
231 : }
232 :
233 : void
234 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::DestroyArrayBuffer()
235 : {
236 0 : MOZ_ASSERT(IsArrayBuffer(), "Wrong type!");
237 0 : mValue.mArrayBuffer.Destroy();
238 0 : mType = eUninitialized;
239 0 : }
240 :
241 :
242 :
243 :
244 : OwningNonNull<mozilla::dom::FormData>&
245 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::RawSetAsFormData()
246 : {
247 0 : if (mType == eFormData) {
248 0 : return mValue.mFormData.Value();
249 : }
250 0 : MOZ_ASSERT(mType == eUninitialized);
251 0 : mType = eFormData;
252 0 : return mValue.mFormData.SetValue();
253 : }
254 :
255 : OwningNonNull<mozilla::dom::FormData>&
256 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::SetAsFormData()
257 : {
258 0 : if (mType == eFormData) {
259 0 : return mValue.mFormData.Value();
260 : }
261 0 : Uninit();
262 0 : mType = eFormData;
263 0 : return mValue.mFormData.SetValue();
264 : }
265 :
266 : bool
267 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TrySetToFormData(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl)
268 : {
269 0 : tryNext = false;
270 : { // scope for memberSlot
271 0 : OwningNonNull<mozilla::dom::FormData>& memberSlot = RawSetAsFormData();
272 : static_assert(IsRefcounted<mozilla::dom::FormData>::value, "We can only store refcounted classes.");{
273 0 : nsresult rv = UnwrapObject<prototypes::id::FormData, mozilla::dom::FormData>(value, memberSlot);
274 0 : if (NS_FAILED(rv)) {
275 0 : DestroyFormData();
276 0 : tryNext = true;
277 0 : return true;
278 : }
279 : }
280 : }
281 0 : return true;
282 : }
283 :
284 : void
285 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::DestroyFormData()
286 : {
287 0 : MOZ_ASSERT(IsFormData(), "Wrong type!");
288 0 : mValue.mFormData.Destroy();
289 0 : mType = eUninitialized;
290 0 : }
291 :
292 :
293 :
294 :
295 : OwningNonNull<mozilla::dom::URLSearchParams>&
296 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::RawSetAsURLSearchParams()
297 : {
298 0 : if (mType == eURLSearchParams) {
299 0 : return mValue.mURLSearchParams.Value();
300 : }
301 0 : MOZ_ASSERT(mType == eUninitialized);
302 0 : mType = eURLSearchParams;
303 0 : return mValue.mURLSearchParams.SetValue();
304 : }
305 :
306 : OwningNonNull<mozilla::dom::URLSearchParams>&
307 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::SetAsURLSearchParams()
308 : {
309 0 : if (mType == eURLSearchParams) {
310 0 : return mValue.mURLSearchParams.Value();
311 : }
312 0 : Uninit();
313 0 : mType = eURLSearchParams;
314 0 : return mValue.mURLSearchParams.SetValue();
315 : }
316 :
317 : bool
318 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TrySetToURLSearchParams(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl)
319 : {
320 0 : tryNext = false;
321 : { // scope for memberSlot
322 0 : OwningNonNull<mozilla::dom::URLSearchParams>& memberSlot = RawSetAsURLSearchParams();
323 : static_assert(IsRefcounted<mozilla::dom::URLSearchParams>::value, "We can only store refcounted classes.");{
324 0 : nsresult rv = UnwrapObject<prototypes::id::URLSearchParams, mozilla::dom::URLSearchParams>(value, memberSlot);
325 0 : if (NS_FAILED(rv)) {
326 0 : DestroyURLSearchParams();
327 0 : tryNext = true;
328 0 : return true;
329 : }
330 : }
331 : }
332 0 : return true;
333 : }
334 :
335 : void
336 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::DestroyURLSearchParams()
337 : {
338 0 : MOZ_ASSERT(IsURLSearchParams(), "Wrong type!");
339 0 : mValue.mURLSearchParams.Destroy();
340 0 : mType = eUninitialized;
341 0 : }
342 :
343 :
344 :
345 :
346 : nsString&
347 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::RawSetAsUSVString()
348 : {
349 0 : if (mType == eUSVString) {
350 0 : return mValue.mUSVString.Value();
351 : }
352 0 : MOZ_ASSERT(mType == eUninitialized);
353 0 : mType = eUSVString;
354 0 : return mValue.mUSVString.SetValue();
355 : }
356 :
357 : nsString&
358 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::SetAsUSVString()
359 : {
360 0 : if (mType == eUSVString) {
361 0 : return mValue.mUSVString.Value();
362 : }
363 0 : Uninit();
364 0 : mType = eUSVString;
365 0 : return mValue.mUSVString.SetValue();
366 : }
367 :
368 : bool
369 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TrySetToUSVString(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl)
370 : {
371 0 : tryNext = false;
372 : { // scope for memberSlot
373 0 : nsString& memberSlot = RawSetAsUSVString();
374 0 : if (!ConvertJSValueToString(cx, value, eStringify, eStringify, memberSlot)) {
375 0 : return false;
376 : }
377 0 : NormalizeUSVString(memberSlot);
378 : }
379 0 : return true;
380 : }
381 :
382 :
383 : void
384 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::DestroyUSVString()
385 : {
386 0 : MOZ_ASSERT(IsUSVString(), "Wrong type!");
387 0 : mValue.mUSVString.Destroy();
388 0 : mType = eUninitialized;
389 0 : }
390 :
391 :
392 :
393 :
394 : void
395 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::Uninit()
396 : {
397 0 : switch (mType) {
398 : case eUninitialized: {
399 0 : break;
400 : }
401 : case eBlob: {
402 0 : DestroyBlob();
403 0 : break;
404 : }
405 : case eArrayBufferView: {
406 0 : DestroyArrayBufferView();
407 0 : break;
408 : }
409 : case eArrayBuffer: {
410 0 : DestroyArrayBuffer();
411 0 : break;
412 : }
413 : case eFormData: {
414 0 : DestroyFormData();
415 0 : break;
416 : }
417 : case eURLSearchParams: {
418 0 : DestroyURLSearchParams();
419 0 : break;
420 : }
421 : case eUSVString: {
422 0 : DestroyUSVString();
423 0 : break;
424 : }
425 : }
426 0 : }
427 :
428 : bool
429 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const
430 : {
431 0 : switch (mType) {
432 : case eUninitialized: {
433 0 : return false;
434 : break;
435 : }
436 : case eBlob: {
437 0 : if (!GetOrCreateDOMReflector(cx, mValue.mBlob.Value(), rval)) {
438 0 : MOZ_ASSERT(true || JS_IsExceptionPending(cx));
439 0 : return false;
440 : }
441 0 : return true;
442 : break;
443 : }
444 : case eArrayBufferView: {
445 0 : rval.setObject(*mValue.mArrayBufferView.Value().Obj());
446 0 : if (!MaybeWrapNonDOMObjectValue(cx, rval)) {
447 0 : return false;
448 : }
449 0 : return true;
450 : break;
451 : }
452 : case eArrayBuffer: {
453 0 : rval.setObject(*mValue.mArrayBuffer.Value().Obj());
454 0 : if (!MaybeWrapNonDOMObjectValue(cx, rval)) {
455 0 : return false;
456 : }
457 0 : return true;
458 : break;
459 : }
460 : case eFormData: {
461 0 : if (!GetOrCreateDOMReflector(cx, mValue.mFormData.Value(), rval)) {
462 0 : MOZ_ASSERT(true || JS_IsExceptionPending(cx));
463 0 : return false;
464 : }
465 0 : return true;
466 : break;
467 : }
468 : case eURLSearchParams: {
469 0 : if (!GetOrCreateDOMReflector(cx, mValue.mURLSearchParams.Value(), rval)) {
470 0 : MOZ_ASSERT(true || JS_IsExceptionPending(cx));
471 0 : return false;
472 : }
473 0 : return true;
474 : break;
475 : }
476 : case eUSVString: {
477 0 : if (!xpc::NonVoidStringToJsval(cx, mValue.mUSVString.Value(), rval)) {
478 0 : return false;
479 : }
480 0 : return true;
481 : break;
482 : }
483 : default: {
484 0 : return false;
485 : break;
486 : }
487 : }
488 :
489 : return false;
490 : }
491 :
492 : void
493 0 : OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString::TraceUnion(JSTracer* trc)
494 : {
495 0 : switch (mType) {
496 : case eArrayBufferView: {
497 0 : mValue.mArrayBufferView.Value().TraceSelf(trc);
498 0 : break;
499 : }
500 : case eArrayBuffer: {
501 0 : mValue.mArrayBuffer.Value().TraceSelf(trc);
502 0 : break;
503 : }
504 : default: {
505 0 : break;
506 : }
507 : }
508 0 : }
509 :
510 :
511 : } // namespace dom
512 : } // namespace mozilla
|