Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/ipc/ipdl/PPresentationParent.cpp
Line
Count
Source (jump to first uncovered line)
1
//
2
// Automatically generated by ipdlc.
3
// Edit at your own risk
4
//
5
6
7
#include "mozilla/dom/PPresentationParent.h"
8
#include "mozilla/dom/PermissionMessageUtils.h"
9
10
#include "mozilla/dom/PContentParent.h"
11
#include "mozilla/dom/PPresentationRequestParent.h"
12
#include "mozilla/dom/PPresentationBuilderParent.h"
13
14
#include "nsIFile.h"
15
#include "GeckoProfiler.h"
16
17
namespace mozilla {
18
namespace dom {
19
20
21
auto PPresentationParent::Recv__delete__() -> mozilla::ipc::IPCResult
22
0
{
23
0
    return IPC_OK();
24
0
}
25
26
auto PPresentationParent::RecvPPresentationRequestConstructor(
27
        PPresentationRequestParent* actor,
28
        const PresentationIPCRequest& aRequest) -> mozilla::ipc::IPCResult
29
0
{
30
0
    return IPC_OK();
31
0
}
32
33
auto PPresentationParent::ActorDestroy(ActorDestroyReason aWhy) -> void
34
0
{
35
0
}
36
37
MOZ_IMPLICIT PPresentationParent::PPresentationParent() :
38
    mozilla::ipc::IProtocol(mozilla::ipc::ParentSide),
39
    mLivenessState(mozilla::ipc::LivenessState::Dead)
40
0
{
41
0
    MOZ_COUNT_CTOR(PPresentationParent);
42
0
}
43
44
PPresentationParent::~PPresentationParent()
45
0
{
46
0
    MOZ_COUNT_DTOR(PPresentationParent);
47
0
}
48
49
auto PPresentationParent::Manager() const -> PContentParent*
50
0
{
51
0
    return static_cast<PContentParent*>(IProtocol::Manager());
52
0
}
53
54
auto PPresentationParent::ManagedPPresentationBuilderParent(nsTArray<PPresentationBuilderParent*>& aArr) const -> void
55
0
{
56
0
    (mManagedPPresentationBuilderParent).ToArray(aArr);
57
0
}
58
59
auto PPresentationParent::ManagedPPresentationBuilderParent() const -> const ManagedContainer<PPresentationBuilderParent>&
60
0
{
61
0
    return mManagedPPresentationBuilderParent;
62
0
}
63
64
auto PPresentationParent::ManagedPPresentationRequestParent(nsTArray<PPresentationRequestParent*>& aArr) const -> void
65
0
{
66
0
    (mManagedPPresentationRequestParent).ToArray(aArr);
67
0
}
68
69
auto PPresentationParent::ManagedPPresentationRequestParent() const -> const ManagedContainer<PPresentationRequestParent>&
70
0
{
71
0
    return mManagedPPresentationRequestParent;
72
0
}
73
74
auto PPresentationParent::SendNotifyAvailableChange(
75
        const nsTArray<nsString>& aAvailabilityUrls,
76
        const bool& aAvailable) -> bool
77
0
{
78
0
    IPC::Message* msg__ = PPresentation::Msg_NotifyAvailableChange(Id());
79
0
80
0
    WriteIPDLParam(msg__, this, aAvailabilityUrls);
81
0
    // Sentinel = 'aAvailabilityUrls'
82
0
    (msg__)->WriteSentinel(4288475919);
83
0
    WriteIPDLParam(msg__, this, aAvailable);
84
0
    // Sentinel = 'aAvailable'
85
0
    (msg__)->WriteSentinel(1825731316);
86
0
87
0
88
0
89
0
90
0
    if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
91
0
        mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
92
0
    }
93
0
    AUTO_PROFILER_LABEL("PPresentation::Msg_NotifyAvailableChange", OTHER);
94
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
95
0
        mozilla::ipc::LogicError("Transition error");
96
0
    }
97
0
98
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
99
0
    return sendok__;
100
0
}
101
102
auto PPresentationParent::SendNotifySessionStateChange(
103
        const nsString& aSessionId,
104
        const uint16_t& aState,
105
        const nsresult& aReason) -> bool
106
0
{
107
0
    IPC::Message* msg__ = PPresentation::Msg_NotifySessionStateChange(Id());
108
0
109
0
    WriteIPDLParam(msg__, this, aSessionId);
110
0
    // Sentinel = 'aSessionId'
111
0
    (msg__)->WriteSentinel(725794242);
112
0
    WriteIPDLParam(msg__, this, aState);
113
0
    // Sentinel = 'aState'
114
0
    (msg__)->WriteSentinel(3694751962);
115
0
    WriteIPDLParam(msg__, this, aReason);
116
0
    // Sentinel = 'aReason'
117
0
    (msg__)->WriteSentinel(829905706);
118
0
119
0
120
0
121
0
122
0
    if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
123
0
        mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
124
0
    }
125
0
    AUTO_PROFILER_LABEL("PPresentation::Msg_NotifySessionStateChange", OTHER);
126
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
127
0
        mozilla::ipc::LogicError("Transition error");
128
0
    }
129
0
130
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
131
0
    return sendok__;
132
0
}
133
134
auto PPresentationParent::SendNotifyMessage(
135
        const nsString& aSessionId,
136
        const nsCString& aData,
137
        const bool& aIsBinary) -> bool
138
0
{
139
0
    IPC::Message* msg__ = PPresentation::Msg_NotifyMessage(Id());
140
0
141
0
    WriteIPDLParam(msg__, this, aSessionId);
142
0
    // Sentinel = 'aSessionId'
143
0
    (msg__)->WriteSentinel(725794242);
144
0
    WriteIPDLParam(msg__, this, aData);
145
0
    // Sentinel = 'aData'
146
0
    (msg__)->WriteSentinel(3285075324);
147
0
    WriteIPDLParam(msg__, this, aIsBinary);
148
0
    // Sentinel = 'aIsBinary'
149
0
    (msg__)->WriteSentinel(2416980823);
150
0
151
0
152
0
153
0
154
0
    if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
155
0
        mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
156
0
    }
157
0
    AUTO_PROFILER_LABEL("PPresentation::Msg_NotifyMessage", OTHER);
158
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
159
0
        mozilla::ipc::LogicError("Transition error");
160
0
    }
161
0
162
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
163
0
    return sendok__;
164
0
}
165
166
auto PPresentationParent::SendNotifySessionConnect(
167
        const uint64_t& aWindowId,
168
        const nsString& aSessionId) -> bool
169
0
{
170
0
    IPC::Message* msg__ = PPresentation::Msg_NotifySessionConnect(Id());
171
0
172
0
    WriteIPDLParam(msg__, this, aWindowId);
173
0
    // Sentinel = 'aWindowId'
174
0
    (msg__)->WriteSentinel(3844940347);
175
0
    WriteIPDLParam(msg__, this, aSessionId);
176
0
    // Sentinel = 'aSessionId'
177
0
    (msg__)->WriteSentinel(725794242);
178
0
179
0
180
0
181
0
182
0
    if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
183
0
        mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
184
0
    }
185
0
    AUTO_PROFILER_LABEL("PPresentation::Msg_NotifySessionConnect", OTHER);
186
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
187
0
        mozilla::ipc::LogicError("Transition error");
188
0
    }
189
0
190
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
191
0
    return sendok__;
192
0
}
193
194
auto PPresentationParent::SendNotifyCloseSessionTransport(
195
        const nsString& aSessionId,
196
        const uint8_t& aRole,
197
        const nsresult& aReason) -> bool
198
0
{
199
0
    IPC::Message* msg__ = PPresentation::Msg_NotifyCloseSessionTransport(Id());
200
0
201
0
    WriteIPDLParam(msg__, this, aSessionId);
202
0
    // Sentinel = 'aSessionId'
203
0
    (msg__)->WriteSentinel(725794242);
204
0
    WriteIPDLParam(msg__, this, aRole);
205
0
    // Sentinel = 'aRole'
206
0
    (msg__)->WriteSentinel(985916136);
207
0
    WriteIPDLParam(msg__, this, aReason);
208
0
    // Sentinel = 'aReason'
209
0
    (msg__)->WriteSentinel(829905706);
210
0
211
0
212
0
213
0
214
0
    if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
215
0
        mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
216
0
    }
217
0
    AUTO_PROFILER_LABEL("PPresentation::Msg_NotifyCloseSessionTransport", OTHER);
218
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
219
0
        mozilla::ipc::LogicError("Transition error");
220
0
    }
221
0
222
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
223
0
    return sendok__;
224
0
}
225
226
auto PPresentationParent::SendPPresentationBuilderConstructor(
227
        const nsString& aSessionId,
228
        const uint8_t& aRole) -> PPresentationBuilderParent*
229
0
{
230
0
    return SendPPresentationBuilderConstructor(AllocPPresentationBuilderParent(aSessionId, aRole), aSessionId, aRole);
231
0
}
232
233
auto PPresentationParent::SendPPresentationBuilderConstructor(
234
        PPresentationBuilderParent* actor,
235
        const nsString& aSessionId,
236
        const uint8_t& aRole) -> PPresentationBuilderParent*
237
0
{
238
0
    if ((!(actor))) {
239
0
        NS_WARNING("Error constructing actor PPresentationBuilderParent");
240
0
        return nullptr;
241
0
    }
242
0
    (actor)->SetManagerAndRegister(this);
243
0
    (mManagedPPresentationBuilderParent).PutEntry(actor);
244
0
    (actor)->mLivenessState = mozilla::ipc::LivenessState::Start;
245
0
246
0
    IPC::Message* msg__ = PPresentation::Msg_PPresentationBuilderConstructor(Id());
247
0
248
0
    MOZ_RELEASE_ASSERT(actor, "NULL actor value passed to non-nullable param");
249
0
    WriteIPDLParam(msg__, this, actor);
250
0
    // Sentinel = 'actor'
251
0
    (msg__)->WriteSentinel(875202478);
252
0
    WriteIPDLParam(msg__, this, aSessionId);
253
0
    // Sentinel = 'aSessionId'
254
0
    (msg__)->WriteSentinel(725794242);
255
0
    WriteIPDLParam(msg__, this, aRole);
256
0
    // Sentinel = 'aRole'
257
0
    (msg__)->WriteSentinel(985916136);
258
0
259
0
260
0
261
0
    if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
262
0
        mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
263
0
    }
264
0
    AUTO_PROFILER_LABEL("PPresentation::Msg_PPresentationBuilderConstructor", OTHER);
265
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
266
0
        mozilla::ipc::LogicError("Transition error");
267
0
    }
268
0
269
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
270
0
    if ((!(sendok__))) {
271
0
        IProtocol* mgr = (actor)->Manager();
272
0
        (actor)->DestroySubtree(FailedConstructor);
273
0
        (actor)->DeallocSubtree();
274
0
        (mgr)->RemoveManagee(PPresentationBuilderMsgStart, actor);
275
0
        return nullptr;
276
0
    }
277
0
    return actor;
278
0
}
279
280
auto PPresentationParent::RemoveManagee(
281
        int32_t aProtocolId,
282
        IProtocol* aListener) -> void
283
0
{
284
0
    switch (aProtocolId) {
285
0
    case PPresentationBuilderMsgStart:
286
0
        {
287
0
            PPresentationBuilderParent* actor = static_cast<PPresentationBuilderParent*>(aListener);
288
0
            auto& container = mManagedPPresentationBuilderParent;
289
0
            MOZ_RELEASE_ASSERT((container).Contains(actor), "actor not managed by this!");
290
0
291
0
            (container).RemoveEntry(actor);
292
0
            DeallocPPresentationBuilderParent(actor);
293
0
            return;
294
0
        }
295
0
    case PPresentationRequestMsgStart:
296
0
        {
297
0
            PPresentationRequestParent* actor = static_cast<PPresentationRequestParent*>(aListener);
298
0
            auto& container = mManagedPPresentationRequestParent;
299
0
            MOZ_RELEASE_ASSERT((container).Contains(actor), "actor not managed by this!");
300
0
301
0
            (container).RemoveEntry(actor);
302
0
            DeallocPPresentationRequestParent(actor);
303
0
            return;
304
0
        }
305
0
    default:
306
0
        {
307
0
            FatalError("unreached");
308
0
            return;
309
0
        }
310
0
    }
311
0
}
312
313
auto PPresentationParent::OnMessageReceived(const Message& msg__) -> PPresentationParent::Result
314
0
{
315
0
    switch ((msg__).type()) {
316
0
    case PPresentation::Reply_PPresentationBuilderConstructor__ID:
317
0
        {
318
0
            return MsgProcessed;
319
0
        }
320
0
    case PPresentation::Msg___delete____ID:
321
0
        {
322
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
323
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
324
0
            }
325
0
            AUTO_PROFILER_LABEL("PPresentation::Msg___delete__", OTHER);
326
0
327
0
            PickleIterator iter__(msg__);
328
0
            PPresentationParent* actor;
329
0
330
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(actor)))))) {
331
0
                FatalError("Error deserializing 'PPresentationParent'");
332
0
                return MsgValueError;
333
0
            }
334
0
            if ((!((*((&(actor))))))) {
335
0
                FatalError("Error deserializing 'PPresentationParent'");
336
0
                return MsgValueError;
337
0
            }
338
0
            // Sentinel = 'actor'
339
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 875202478)))) {
340
0
                mozilla::ipc::SentinelReadError("Error deserializing 'PPresentationParent'");
341
0
                return MsgValueError;
342
0
            }
343
0
            (msg__).EndRead(iter__, (msg__).type());
344
0
            if ((!(StateTransition(true, (&(mLivenessState)))))) {
345
0
                FatalError("Transition error");
346
0
                return MsgValueError;
347
0
            }
348
0
            if ((!(Recv__delete__()))) {
349
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
350
0
                // Error handled in mozilla::ipc::IPCResult
351
0
                return MsgProcessingError;
352
0
            }
353
0
354
0
355
0
            IProtocol* mgr = (actor)->Manager();
356
0
            (actor)->DestroySubtree(Deletion);
357
0
            (actor)->DeallocSubtree();
358
0
            (mgr)->RemoveManagee(PPresentationMsgStart, actor);
359
0
360
0
            return MsgProcessed;
361
0
        }
362
0
    case PPresentation::Msg_RegisterAvailabilityHandler__ID:
363
0
        {
364
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
365
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
366
0
            }
367
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_RegisterAvailabilityHandler", OTHER);
368
0
369
0
            PickleIterator iter__(msg__);
370
0
            nsTArray<nsString> aAvailabilityUrls;
371
0
372
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aAvailabilityUrls)))))) {
373
0
                FatalError("Error deserializing 'nsTArray'");
374
0
                return MsgValueError;
375
0
            }
376
0
            // Sentinel = 'aAvailabilityUrls'
377
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 4288475919)))) {
378
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
379
0
                return MsgValueError;
380
0
            }
381
0
            (msg__).EndRead(iter__, (msg__).type());
382
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
383
0
                FatalError("Transition error");
384
0
                return MsgValueError;
385
0
            }
386
0
            if ((!(RecvRegisterAvailabilityHandler(std::move(aAvailabilityUrls))))) {
387
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
388
0
                // Error handled in mozilla::ipc::IPCResult
389
0
                return MsgProcessingError;
390
0
            }
391
0
392
0
            return MsgProcessed;
393
0
        }
394
0
    case PPresentation::Msg_UnregisterAvailabilityHandler__ID:
395
0
        {
396
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
397
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
398
0
            }
399
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_UnregisterAvailabilityHandler", OTHER);
400
0
401
0
            PickleIterator iter__(msg__);
402
0
            nsTArray<nsString> aAvailabilityUrls;
403
0
404
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aAvailabilityUrls)))))) {
405
0
                FatalError("Error deserializing 'nsTArray'");
406
0
                return MsgValueError;
407
0
            }
408
0
            // Sentinel = 'aAvailabilityUrls'
409
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 4288475919)))) {
410
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
411
0
                return MsgValueError;
412
0
            }
413
0
            (msg__).EndRead(iter__, (msg__).type());
414
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
415
0
                FatalError("Transition error");
416
0
                return MsgValueError;
417
0
            }
418
0
            if ((!(RecvUnregisterAvailabilityHandler(std::move(aAvailabilityUrls))))) {
419
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
420
0
                // Error handled in mozilla::ipc::IPCResult
421
0
                return MsgProcessingError;
422
0
            }
423
0
424
0
            return MsgProcessed;
425
0
        }
426
0
    case PPresentation::Msg_RegisterSessionHandler__ID:
427
0
        {
428
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
429
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
430
0
            }
431
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_RegisterSessionHandler", OTHER);
432
0
433
0
            PickleIterator iter__(msg__);
434
0
            nsString aSessionId;
435
0
            uint8_t aRole;
436
0
437
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aSessionId)))))) {
438
0
                FatalError("Error deserializing 'nsString'");
439
0
                return MsgValueError;
440
0
            }
441
0
            // Sentinel = 'aSessionId'
442
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 725794242)))) {
443
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsString'");
444
0
                return MsgValueError;
445
0
            }
446
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aRole)))))) {
447
0
                FatalError("Error deserializing 'uint8_t'");
448
0
                return MsgValueError;
449
0
            }
450
0
            // Sentinel = 'aRole'
451
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 985916136)))) {
452
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint8_t'");
453
0
                return MsgValueError;
454
0
            }
455
0
            (msg__).EndRead(iter__, (msg__).type());
456
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
457
0
                FatalError("Transition error");
458
0
                return MsgValueError;
459
0
            }
460
0
            if ((!(RecvRegisterSessionHandler(aSessionId, aRole)))) {
461
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
462
0
                // Error handled in mozilla::ipc::IPCResult
463
0
                return MsgProcessingError;
464
0
            }
465
0
466
0
            return MsgProcessed;
467
0
        }
468
0
    case PPresentation::Msg_UnregisterSessionHandler__ID:
469
0
        {
470
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
471
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
472
0
            }
473
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_UnregisterSessionHandler", OTHER);
474
0
475
0
            PickleIterator iter__(msg__);
476
0
            nsString aSessionId;
477
0
            uint8_t aRole;
478
0
479
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aSessionId)))))) {
480
0
                FatalError("Error deserializing 'nsString'");
481
0
                return MsgValueError;
482
0
            }
483
0
            // Sentinel = 'aSessionId'
484
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 725794242)))) {
485
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsString'");
486
0
                return MsgValueError;
487
0
            }
488
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aRole)))))) {
489
0
                FatalError("Error deserializing 'uint8_t'");
490
0
                return MsgValueError;
491
0
            }
492
0
            // Sentinel = 'aRole'
493
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 985916136)))) {
494
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint8_t'");
495
0
                return MsgValueError;
496
0
            }
497
0
            (msg__).EndRead(iter__, (msg__).type());
498
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
499
0
                FatalError("Transition error");
500
0
                return MsgValueError;
501
0
            }
502
0
            if ((!(RecvUnregisterSessionHandler(aSessionId, aRole)))) {
503
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
504
0
                // Error handled in mozilla::ipc::IPCResult
505
0
                return MsgProcessingError;
506
0
            }
507
0
508
0
            return MsgProcessed;
509
0
        }
510
0
    case PPresentation::Msg_RegisterRespondingHandler__ID:
511
0
        {
512
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
513
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
514
0
            }
515
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_RegisterRespondingHandler", OTHER);
516
0
517
0
            PickleIterator iter__(msg__);
518
0
            uint64_t aWindowId;
519
0
520
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aWindowId)))))) {
521
0
                FatalError("Error deserializing 'uint64_t'");
522
0
                return MsgValueError;
523
0
            }
524
0
            // Sentinel = 'aWindowId'
525
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3844940347)))) {
526
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint64_t'");
527
0
                return MsgValueError;
528
0
            }
529
0
            (msg__).EndRead(iter__, (msg__).type());
530
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
531
0
                FatalError("Transition error");
532
0
                return MsgValueError;
533
0
            }
534
0
            if ((!(RecvRegisterRespondingHandler(aWindowId)))) {
535
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
536
0
                // Error handled in mozilla::ipc::IPCResult
537
0
                return MsgProcessingError;
538
0
            }
539
0
540
0
            return MsgProcessed;
541
0
        }
542
0
    case PPresentation::Msg_UnregisterRespondingHandler__ID:
543
0
        {
544
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
545
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
546
0
            }
547
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_UnregisterRespondingHandler", OTHER);
548
0
549
0
            PickleIterator iter__(msg__);
550
0
            uint64_t aWindowId;
551
0
552
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aWindowId)))))) {
553
0
                FatalError("Error deserializing 'uint64_t'");
554
0
                return MsgValueError;
555
0
            }
556
0
            // Sentinel = 'aWindowId'
557
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3844940347)))) {
558
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint64_t'");
559
0
                return MsgValueError;
560
0
            }
561
0
            (msg__).EndRead(iter__, (msg__).type());
562
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
563
0
                FatalError("Transition error");
564
0
                return MsgValueError;
565
0
            }
566
0
            if ((!(RecvUnregisterRespondingHandler(aWindowId)))) {
567
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
568
0
                // Error handled in mozilla::ipc::IPCResult
569
0
                return MsgProcessingError;
570
0
            }
571
0
572
0
            return MsgProcessed;
573
0
        }
574
0
    case PPresentation::Msg_PPresentationRequestConstructor__ID:
575
0
        {
576
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
577
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
578
0
            }
579
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_PPresentationRequestConstructor", OTHER);
580
0
581
0
            PickleIterator iter__(msg__);
582
0
            ActorHandle handle__;
583
0
            PPresentationRequestParent* actor;
584
0
            PresentationIPCRequest aRequest;
585
0
586
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(handle__)))))) {
587
0
                FatalError("Error deserializing 'ActorHandle'");
588
0
                return MsgValueError;
589
0
            }
590
0
            // Sentinel = 'actor'
591
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 875202478)))) {
592
0
                mozilla::ipc::SentinelReadError("Error deserializing 'ActorHandle'");
593
0
                return MsgValueError;
594
0
            }
595
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aRequest)))))) {
596
0
                FatalError("Error deserializing 'PresentationIPCRequest'");
597
0
                return MsgValueError;
598
0
            }
599
0
            // Sentinel = 'aRequest'
600
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 1227940332)))) {
601
0
                mozilla::ipc::SentinelReadError("Error deserializing 'PresentationIPCRequest'");
602
0
                return MsgValueError;
603
0
            }
604
0
            (msg__).EndRead(iter__, (msg__).type());
605
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
606
0
                FatalError("Transition error");
607
0
                return MsgValueError;
608
0
            }
609
0
            actor = AllocPPresentationRequestParent(aRequest);
610
0
            if ((!(actor))) {
611
0
                NS_WARNING("Error constructing actor PPresentationRequestParent");
612
0
                return MsgValueError;
613
0
            }
614
0
            (actor)->SetManagerAndRegister(this, (handle__).mId);
615
0
            (mManagedPPresentationRequestParent).PutEntry(actor);
616
0
            (actor)->mLivenessState = mozilla::ipc::LivenessState::Start;
617
0
618
0
            if ((!(RecvPPresentationRequestConstructor(actor, aRequest)))) {
619
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
620
0
                // Error handled in mozilla::ipc::IPCResult
621
0
                return MsgProcessingError;
622
0
            }
623
0
624
0
            return MsgProcessed;
625
0
        }
626
0
    case PPresentation::Msg_NotifyReceiverReady__ID:
627
0
        {
628
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
629
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
630
0
            }
631
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_NotifyReceiverReady", OTHER);
632
0
633
0
            PickleIterator iter__(msg__);
634
0
            nsString aSessionId;
635
0
            uint64_t aWindowId;
636
0
            bool aIsLoading;
637
0
638
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aSessionId)))))) {
639
0
                FatalError("Error deserializing 'nsString'");
640
0
                return MsgValueError;
641
0
            }
642
0
            // Sentinel = 'aSessionId'
643
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 725794242)))) {
644
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsString'");
645
0
                return MsgValueError;
646
0
            }
647
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aWindowId)))))) {
648
0
                FatalError("Error deserializing 'uint64_t'");
649
0
                return MsgValueError;
650
0
            }
651
0
            // Sentinel = 'aWindowId'
652
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3844940347)))) {
653
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint64_t'");
654
0
                return MsgValueError;
655
0
            }
656
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aIsLoading)))))) {
657
0
                FatalError("Error deserializing 'bool'");
658
0
                return MsgValueError;
659
0
            }
660
0
            // Sentinel = 'aIsLoading'
661
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3674007961)))) {
662
0
                mozilla::ipc::SentinelReadError("Error deserializing 'bool'");
663
0
                return MsgValueError;
664
0
            }
665
0
            (msg__).EndRead(iter__, (msg__).type());
666
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
667
0
                FatalError("Transition error");
668
0
                return MsgValueError;
669
0
            }
670
0
            if ((!(RecvNotifyReceiverReady(aSessionId, aWindowId, aIsLoading)))) {
671
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
672
0
                // Error handled in mozilla::ipc::IPCResult
673
0
                return MsgProcessingError;
674
0
            }
675
0
676
0
            return MsgProcessed;
677
0
        }
678
0
    case PPresentation::Msg_NotifyTransportClosed__ID:
679
0
        {
680
0
            if (mozilla::ipc::LoggingEnabledFor("PPresentationParent")) {
681
0
                mozilla::ipc::LogMessageForProtocol("PPresentationParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
682
0
            }
683
0
            AUTO_PROFILER_LABEL("PPresentation::Msg_NotifyTransportClosed", OTHER);
684
0
685
0
            PickleIterator iter__(msg__);
686
0
            nsString aSessionId;
687
0
            uint8_t aRole;
688
0
            nsresult aReason;
689
0
690
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aSessionId)))))) {
691
0
                FatalError("Error deserializing 'nsString'");
692
0
                return MsgValueError;
693
0
            }
694
0
            // Sentinel = 'aSessionId'
695
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 725794242)))) {
696
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsString'");
697
0
                return MsgValueError;
698
0
            }
699
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aRole)))))) {
700
0
                FatalError("Error deserializing 'uint8_t'");
701
0
                return MsgValueError;
702
0
            }
703
0
            // Sentinel = 'aRole'
704
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 985916136)))) {
705
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint8_t'");
706
0
                return MsgValueError;
707
0
            }
708
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aReason)))))) {
709
0
                FatalError("Error deserializing 'nsresult'");
710
0
                return MsgValueError;
711
0
            }
712
0
            // Sentinel = 'aReason'
713
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 829905706)))) {
714
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsresult'");
715
0
                return MsgValueError;
716
0
            }
717
0
            (msg__).EndRead(iter__, (msg__).type());
718
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
719
0
                FatalError("Transition error");
720
0
                return MsgValueError;
721
0
            }
722
0
            if ((!(RecvNotifyTransportClosed(aSessionId, aRole, aReason)))) {
723
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
724
0
                // Error handled in mozilla::ipc::IPCResult
725
0
                return MsgProcessingError;
726
0
            }
727
0
728
0
            return MsgProcessed;
729
0
        }
730
0
    default:
731
0
        {
732
0
            return MsgNotKnown;
733
0
        }
734
0
    }
735
0
}
736
737
auto PPresentationParent::OnMessageReceived(
738
        const Message& msg__,
739
        Message*& reply__) -> PPresentationParent::Result
740
0
{
741
0
    return MsgNotKnown;
742
0
}
743
744
auto PPresentationParent::OnCallReceived(
745
        const Message& msg__,
746
        Message*& reply__) -> PPresentationParent::Result
747
0
{
748
0
    MOZ_ASSERT_UNREACHABLE("message protocol not supported");
749
0
    return MsgNotKnown;
750
0
}
751
752
auto PPresentationParent::GetProtocolTypeId() -> int32_t
753
0
{
754
0
    return PPresentationMsgStart;
755
0
}
756
757
auto PPresentationParent::DestroySubtree(ActorDestroyReason why) -> void
758
0
{
759
0
    // Unregister from our manager.
760
0
    Unregister(Id());
761
0
762
0
    ActorDestroyReason subtreewhy = (((why) == (Deletion)) || ((why) == (FailedConstructor)) ? AncestorDeletion : why);
763
0
764
0
    {
765
0
        // Recursively shutting down PPresentationBuilder kids
766
0
        nsTArray<PPresentationBuilderParent*> kids;
767
0
        // Accumulate kids into a stable structure to iterate over
768
0
        ManagedPPresentationBuilderParent(kids);
769
0
        for (auto& kid : kids) {
770
0
            // Guarding against a child removing a sibling from the list during the iteration.
771
0
            if ((mManagedPPresentationBuilderParent).Contains(kid)) {
772
0
                (kid)->DestroySubtree(subtreewhy);
773
0
            }
774
0
        }
775
0
    }
776
0
    {
777
0
        // Recursively shutting down PPresentationRequest kids
778
0
        nsTArray<PPresentationRequestParent*> kids;
779
0
        // Accumulate kids into a stable structure to iterate over
780
0
        ManagedPPresentationRequestParent(kids);
781
0
        for (auto& kid : kids) {
782
0
            // Guarding against a child removing a sibling from the list during the iteration.
783
0
            if ((mManagedPPresentationRequestParent).Contains(kid)) {
784
0
                (kid)->DestroySubtree(subtreewhy);
785
0
            }
786
0
        }
787
0
    }
788
0
789
0
    // Reject owning pending responses.
790
0
    (GetIPCChannel())->RejectPendingResponsesForActor(this);
791
0
792
0
    // Finally, destroy "us".
793
0
    ActorDestroy(why);
794
0
}
795
796
auto PPresentationParent::DeallocSubtree() -> void
797
0
{
798
0
    {
799
0
        // Recursively deleting PPresentationBuilder kids
800
0
        for (auto iter = (mManagedPPresentationBuilderParent).Iter(); (!((iter).Done())); (iter).Next()) {
801
0
            (((iter).Get())->GetKey())->DeallocSubtree();
802
0
        }
803
0
804
0
        for (auto iter = (mManagedPPresentationBuilderParent).Iter(); (!((iter).Done())); (iter).Next()) {
805
0
            DeallocPPresentationBuilderParent(((iter).Get())->GetKey());
806
0
        }
807
0
        (mManagedPPresentationBuilderParent).Clear();
808
0
    }
809
0
    {
810
0
        // Recursively deleting PPresentationRequest kids
811
0
        for (auto iter = (mManagedPPresentationRequestParent).Iter(); (!((iter).Done())); (iter).Next()) {
812
0
            (((iter).Get())->GetKey())->DeallocSubtree();
813
0
        }
814
0
815
0
        for (auto iter = (mManagedPPresentationRequestParent).Iter(); (!((iter).Done())); (iter).Next()) {
816
0
            DeallocPPresentationRequestParent(((iter).Get())->GetKey());
817
0
        }
818
0
        (mManagedPPresentationRequestParent).Clear();
819
0
    }
820
0
}
821
822
823
824
} // namespace dom
825
} // namespace mozilla
826
namespace mozilla {
827
namespace ipc {
828
auto IPDLParamTraits<mozilla::dom::PPresentationParent>::Write(
829
        IPC::Message* aMsg,
830
        mozilla::ipc::IProtocol* aActor,
831
        const paramType& aVar) -> void
832
0
{
833
0
    int32_t id;
834
0
    if ((!(aVar))) {
835
0
        id = 0;
836
0
    }
837
0
    else {
838
0
        id = (aVar)->Id();
839
0
        if ((1) == (id)) {
840
0
            (aActor)->FatalError("actor has been |delete|d");
841
0
        }
842
0
    }
843
0
    WriteIPDLParam(aMsg, aActor, id);
844
0
}
845
846
auto IPDLParamTraits<mozilla::dom::PPresentationParent>::Read(
847
        const IPC::Message* aMsg,
848
        PickleIterator* aIter,
849
        mozilla::ipc::IProtocol* aActor,
850
        paramType* aVar) -> bool
851
0
{
852
0
    mozilla::Maybe<mozilla::ipc::IProtocol*> actor = (aActor)->ReadActor(aMsg, aIter, true, "PPresentation", PPresentationMsgStart);
853
0
    if ((actor).isNothing()) {
854
0
        return false;
855
0
    }
856
0
857
0
    (*(aVar)) = static_cast<mozilla::dom::PPresentationParent*>((actor).value());
858
0
    return true;
859
0
}
860
861
} // namespace ipc
862
} // namespace mozilla