Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/ipc/ipdl/PServiceWorkerContainerParent.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/PServiceWorkerContainerParent.h"
8
9
#include "mozilla/ipc/PBackgroundParent.h"
10
11
#include "nsIFile.h"
12
#include "GeckoProfiler.h"
13
14
namespace mozilla {
15
namespace dom {
16
17
18
auto PServiceWorkerContainerParent::ActorDestroy(ActorDestroyReason aWhy) -> void
19
0
{
20
0
}
21
22
MOZ_IMPLICIT PServiceWorkerContainerParent::PServiceWorkerContainerParent() :
23
    mozilla::ipc::IProtocol(mozilla::ipc::ParentSide),
24
    mLivenessState(mozilla::ipc::LivenessState::Dead)
25
0
{
26
0
    MOZ_COUNT_CTOR(PServiceWorkerContainerParent);
27
0
}
28
29
PServiceWorkerContainerParent::~PServiceWorkerContainerParent()
30
0
{
31
0
    MOZ_COUNT_DTOR(PServiceWorkerContainerParent);
32
0
}
33
34
auto PServiceWorkerContainerParent::Manager() const -> PBackgroundParent*
35
0
{
36
0
    return static_cast<PBackgroundParent*>(IProtocol::Manager());
37
0
}
38
39
auto PServiceWorkerContainerParent::Send__delete__(PServiceWorkerContainerParent* actor) -> bool
40
0
{
41
0
    if ((!(actor))) {
42
0
        return false;
43
0
    }
44
0
45
0
    IPC::Message* msg__ = PServiceWorkerContainer::Msg___delete__((actor)->Id());
46
0
47
0
    MOZ_RELEASE_ASSERT(actor, "NULL actor value passed to non-nullable param");
48
0
    WriteIPDLParam(msg__, actor, actor);
49
0
    // Sentinel = 'actor'
50
0
    (msg__)->WriteSentinel(875202478);
51
0
52
0
53
0
54
0
    if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
55
0
        mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", (actor)->OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
56
0
    }
57
0
    AUTO_PROFILER_LABEL("PServiceWorkerContainer::Msg___delete__", OTHER);
58
0
    if ((!(StateTransition(true, (&((actor)->mLivenessState)))))) {
59
0
        mozilla::ipc::LogicError("Transition error");
60
0
    }
61
0
62
0
    bool sendok__ = ((actor)->GetIPCChannel())->Send(msg__);
63
0
64
0
    IProtocol* mgr = (actor)->Manager();
65
0
    (actor)->DestroySubtree(Deletion);
66
0
    (actor)->DeallocSubtree();
67
0
    (mgr)->RemoveManagee(PServiceWorkerContainerMsgStart, actor);
68
0
    return sendok__;
69
0
}
70
71
auto PServiceWorkerContainerParent::RemoveManagee(
72
        int32_t aProtocolId,
73
        IProtocol* aListener) -> void
74
0
{
75
0
    FatalError("unreached");
76
0
    return;
77
0
}
78
79
auto PServiceWorkerContainerParent::OnMessageReceived(const Message& msg__) -> PServiceWorkerContainerParent::Result
80
0
{
81
0
    switch ((msg__).type()) {
82
0
    case PServiceWorkerContainer::Msg_Teardown__ID:
83
0
        {
84
0
            if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
85
0
                mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
86
0
            }
87
0
            AUTO_PROFILER_LABEL("PServiceWorkerContainer::Msg_Teardown", OTHER);
88
0
89
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
90
0
                FatalError("Transition error");
91
0
                return MsgValueError;
92
0
            }
93
0
            if ((!(RecvTeardown()))) {
94
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
95
0
                // Error handled in mozilla::ipc::IPCResult
96
0
                return MsgProcessingError;
97
0
            }
98
0
99
0
            return MsgProcessed;
100
0
        }
101
0
    case PServiceWorkerContainer::Msg_Register__ID:
102
0
        {
103
0
            if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
104
0
                mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
105
0
            }
106
0
            AUTO_PROFILER_LABEL("PServiceWorkerContainer::Msg_Register", OTHER);
107
0
108
0
            PickleIterator iter__(msg__);
109
0
            IPCClientInfo aClientInfo;
110
0
            nsCString aScopeURL;
111
0
            nsCString aScriptURL;
112
0
            ServiceWorkerUpdateViaCache aUpdateViaCache;
113
0
114
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aClientInfo)))))) {
115
0
                FatalError("Error deserializing 'IPCClientInfo'");
116
0
                return MsgValueError;
117
0
            }
118
0
            // Sentinel = 'aClientInfo'
119
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2716254963)))) {
120
0
                mozilla::ipc::SentinelReadError("Error deserializing 'IPCClientInfo'");
121
0
                return MsgValueError;
122
0
            }
123
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aScopeURL)))))) {
124
0
                FatalError("Error deserializing 'nsCString'");
125
0
                return MsgValueError;
126
0
            }
127
0
            // Sentinel = 'aScopeURL'
128
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3900369927)))) {
129
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
130
0
                return MsgValueError;
131
0
            }
132
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aScriptURL)))))) {
133
0
                FatalError("Error deserializing 'nsCString'");
134
0
                return MsgValueError;
135
0
            }
136
0
            // Sentinel = 'aScriptURL'
137
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 810746149)))) {
138
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
139
0
                return MsgValueError;
140
0
            }
141
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aUpdateViaCache)))))) {
142
0
                FatalError("Error deserializing 'ServiceWorkerUpdateViaCache'");
143
0
                return MsgValueError;
144
0
            }
145
0
            // Sentinel = 'aUpdateViaCache'
146
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3351708919)))) {
147
0
                mozilla::ipc::SentinelReadError("Error deserializing 'ServiceWorkerUpdateViaCache'");
148
0
                return MsgValueError;
149
0
            }
150
0
            (msg__).EndRead(iter__, (msg__).type());
151
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
152
0
                FatalError("Transition error");
153
0
                return MsgValueError;
154
0
            }
155
0
            int32_t id__ = Id();
156
0
157
0
            int32_t seqno__ = (msg__).seqno();
158
0
            WeakPtr<PServiceWorkerContainerParent> self__ = this;
159
0
            RegisterResolver resolver = [this, self__, id__, seqno__](const IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult& aParam) {
160
0
                if ((!(self__))) {
161
0
                    NS_WARNING("Not resolving response because actor is dead.");
162
0
                    return;
163
0
                }
164
0
                if ((mLivenessState) == (mozilla::ipc::LivenessState::Dead)) {
165
0
                    NS_WARNING("Not resolving response because actor is destroyed.");
166
0
                    return;
167
0
                }
168
0
                bool resolve__ = true;
169
0
                IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult aResult;
170
0
                aResult = std::move(aParam);
171
0
                IPC::Message* reply__ = PServiceWorkerContainer::Reply_Register(id__);
172
0
                WriteIPDLParam(reply__, self__, resolve__);
173
0
                // Sentinel = 'resolve__'
174
0
                (reply__)->WriteSentinel(3997392463);
175
0
                WriteIPDLParam(reply__, self__, aResult);
176
0
                // Sentinel = 'aResult'
177
0
                (reply__)->WriteSentinel(3888726089);
178
0
                (reply__)->set_seqno(seqno__);
179
0
180
0
                if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
181
0
                    mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Sending reply ", (reply__)->type(), mozilla::ipc::MessageDirection::eSending);
182
0
                }
183
0
                bool sendok__ = (GetIPCChannel())->Send(reply__);
184
0
                if ((!(sendok__))) {
185
0
                    NS_WARNING("Error sending reply");
186
0
                }
187
0
            };
188
0
            if ((!(RecvRegister(aClientInfo, aScopeURL, aScriptURL, aUpdateViaCache, std::move(resolver))))) {
189
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
190
0
                // Error handled in mozilla::ipc::IPCResult
191
0
                return MsgProcessingError;
192
0
            }
193
0
194
0
            return MsgProcessed;
195
0
        }
196
0
    case PServiceWorkerContainer::Msg_GetRegistration__ID:
197
0
        {
198
0
            if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
199
0
                mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
200
0
            }
201
0
            AUTO_PROFILER_LABEL("PServiceWorkerContainer::Msg_GetRegistration", OTHER);
202
0
203
0
            PickleIterator iter__(msg__);
204
0
            IPCClientInfo aClientInfo;
205
0
            nsCString aURL;
206
0
207
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aClientInfo)))))) {
208
0
                FatalError("Error deserializing 'IPCClientInfo'");
209
0
                return MsgValueError;
210
0
            }
211
0
            // Sentinel = 'aClientInfo'
212
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2716254963)))) {
213
0
                mozilla::ipc::SentinelReadError("Error deserializing 'IPCClientInfo'");
214
0
                return MsgValueError;
215
0
            }
216
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aURL)))))) {
217
0
                FatalError("Error deserializing 'nsCString'");
218
0
                return MsgValueError;
219
0
            }
220
0
            // Sentinel = 'aURL'
221
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2075506328)))) {
222
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
223
0
                return MsgValueError;
224
0
            }
225
0
            (msg__).EndRead(iter__, (msg__).type());
226
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
227
0
                FatalError("Transition error");
228
0
                return MsgValueError;
229
0
            }
230
0
            int32_t id__ = Id();
231
0
232
0
            int32_t seqno__ = (msg__).seqno();
233
0
            WeakPtr<PServiceWorkerContainerParent> self__ = this;
234
0
            GetRegistrationResolver resolver = [this, self__, id__, seqno__](const IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult& aParam) {
235
0
                if ((!(self__))) {
236
0
                    NS_WARNING("Not resolving response because actor is dead.");
237
0
                    return;
238
0
                }
239
0
                if ((mLivenessState) == (mozilla::ipc::LivenessState::Dead)) {
240
0
                    NS_WARNING("Not resolving response because actor is destroyed.");
241
0
                    return;
242
0
                }
243
0
                bool resolve__ = true;
244
0
                IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult aResult;
245
0
                aResult = std::move(aParam);
246
0
                IPC::Message* reply__ = PServiceWorkerContainer::Reply_GetRegistration(id__);
247
0
                WriteIPDLParam(reply__, self__, resolve__);
248
0
                // Sentinel = 'resolve__'
249
0
                (reply__)->WriteSentinel(3997392463);
250
0
                WriteIPDLParam(reply__, self__, aResult);
251
0
                // Sentinel = 'aResult'
252
0
                (reply__)->WriteSentinel(3888726089);
253
0
                (reply__)->set_seqno(seqno__);
254
0
255
0
                if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
256
0
                    mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Sending reply ", (reply__)->type(), mozilla::ipc::MessageDirection::eSending);
257
0
                }
258
0
                bool sendok__ = (GetIPCChannel())->Send(reply__);
259
0
                if ((!(sendok__))) {
260
0
                    NS_WARNING("Error sending reply");
261
0
                }
262
0
            };
263
0
            if ((!(RecvGetRegistration(aClientInfo, aURL, std::move(resolver))))) {
264
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
265
0
                // Error handled in mozilla::ipc::IPCResult
266
0
                return MsgProcessingError;
267
0
            }
268
0
269
0
            return MsgProcessed;
270
0
        }
271
0
    case PServiceWorkerContainer::Msg_GetRegistrations__ID:
272
0
        {
273
0
            if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
274
0
                mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
275
0
            }
276
0
            AUTO_PROFILER_LABEL("PServiceWorkerContainer::Msg_GetRegistrations", OTHER);
277
0
278
0
            PickleIterator iter__(msg__);
279
0
            IPCClientInfo aClientInfo;
280
0
281
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aClientInfo)))))) {
282
0
                FatalError("Error deserializing 'IPCClientInfo'");
283
0
                return MsgValueError;
284
0
            }
285
0
            // Sentinel = 'aClientInfo'
286
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2716254963)))) {
287
0
                mozilla::ipc::SentinelReadError("Error deserializing 'IPCClientInfo'");
288
0
                return MsgValueError;
289
0
            }
290
0
            (msg__).EndRead(iter__, (msg__).type());
291
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
292
0
                FatalError("Transition error");
293
0
                return MsgValueError;
294
0
            }
295
0
            int32_t id__ = Id();
296
0
297
0
            int32_t seqno__ = (msg__).seqno();
298
0
            WeakPtr<PServiceWorkerContainerParent> self__ = this;
299
0
            GetRegistrationsResolver resolver = [this, self__, id__, seqno__](const IPCServiceWorkerRegistrationDescriptorListOrCopyableErrorResult& aParam) {
300
0
                if ((!(self__))) {
301
0
                    NS_WARNING("Not resolving response because actor is dead.");
302
0
                    return;
303
0
                }
304
0
                if ((mLivenessState) == (mozilla::ipc::LivenessState::Dead)) {
305
0
                    NS_WARNING("Not resolving response because actor is destroyed.");
306
0
                    return;
307
0
                }
308
0
                bool resolve__ = true;
309
0
                IPCServiceWorkerRegistrationDescriptorListOrCopyableErrorResult aResult;
310
0
                aResult = std::move(aParam);
311
0
                IPC::Message* reply__ = PServiceWorkerContainer::Reply_GetRegistrations(id__);
312
0
                WriteIPDLParam(reply__, self__, resolve__);
313
0
                // Sentinel = 'resolve__'
314
0
                (reply__)->WriteSentinel(3997392463);
315
0
                WriteIPDLParam(reply__, self__, aResult);
316
0
                // Sentinel = 'aResult'
317
0
                (reply__)->WriteSentinel(3888726089);
318
0
                (reply__)->set_seqno(seqno__);
319
0
320
0
                if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
321
0
                    mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Sending reply ", (reply__)->type(), mozilla::ipc::MessageDirection::eSending);
322
0
                }
323
0
                bool sendok__ = (GetIPCChannel())->Send(reply__);
324
0
                if ((!(sendok__))) {
325
0
                    NS_WARNING("Error sending reply");
326
0
                }
327
0
            };
328
0
            if ((!(RecvGetRegistrations(aClientInfo, std::move(resolver))))) {
329
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
330
0
                // Error handled in mozilla::ipc::IPCResult
331
0
                return MsgProcessingError;
332
0
            }
333
0
334
0
            return MsgProcessed;
335
0
        }
336
0
    case PServiceWorkerContainer::Msg_GetReady__ID:
337
0
        {
338
0
            if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
339
0
                mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
340
0
            }
341
0
            AUTO_PROFILER_LABEL("PServiceWorkerContainer::Msg_GetReady", OTHER);
342
0
343
0
            PickleIterator iter__(msg__);
344
0
            IPCClientInfo aClientInfo;
345
0
346
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aClientInfo)))))) {
347
0
                FatalError("Error deserializing 'IPCClientInfo'");
348
0
                return MsgValueError;
349
0
            }
350
0
            // Sentinel = 'aClientInfo'
351
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2716254963)))) {
352
0
                mozilla::ipc::SentinelReadError("Error deserializing 'IPCClientInfo'");
353
0
                return MsgValueError;
354
0
            }
355
0
            (msg__).EndRead(iter__, (msg__).type());
356
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
357
0
                FatalError("Transition error");
358
0
                return MsgValueError;
359
0
            }
360
0
            int32_t id__ = Id();
361
0
362
0
            int32_t seqno__ = (msg__).seqno();
363
0
            WeakPtr<PServiceWorkerContainerParent> self__ = this;
364
0
            GetReadyResolver resolver = [this, self__, id__, seqno__](const IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult& aParam) {
365
0
                if ((!(self__))) {
366
0
                    NS_WARNING("Not resolving response because actor is dead.");
367
0
                    return;
368
0
                }
369
0
                if ((mLivenessState) == (mozilla::ipc::LivenessState::Dead)) {
370
0
                    NS_WARNING("Not resolving response because actor is destroyed.");
371
0
                    return;
372
0
                }
373
0
                bool resolve__ = true;
374
0
                IPCServiceWorkerRegistrationDescriptorOrCopyableErrorResult aResult;
375
0
                aResult = std::move(aParam);
376
0
                IPC::Message* reply__ = PServiceWorkerContainer::Reply_GetReady(id__);
377
0
                WriteIPDLParam(reply__, self__, resolve__);
378
0
                // Sentinel = 'resolve__'
379
0
                (reply__)->WriteSentinel(3997392463);
380
0
                WriteIPDLParam(reply__, self__, aResult);
381
0
                // Sentinel = 'aResult'
382
0
                (reply__)->WriteSentinel(3888726089);
383
0
                (reply__)->set_seqno(seqno__);
384
0
385
0
                if (mozilla::ipc::LoggingEnabledFor("PServiceWorkerContainerParent")) {
386
0
                    mozilla::ipc::LogMessageForProtocol("PServiceWorkerContainerParent", OtherPid(), "Sending reply ", (reply__)->type(), mozilla::ipc::MessageDirection::eSending);
387
0
                }
388
0
                bool sendok__ = (GetIPCChannel())->Send(reply__);
389
0
                if ((!(sendok__))) {
390
0
                    NS_WARNING("Error sending reply");
391
0
                }
392
0
            };
393
0
            if ((!(RecvGetReady(aClientInfo, std::move(resolver))))) {
394
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
395
0
                // Error handled in mozilla::ipc::IPCResult
396
0
                return MsgProcessingError;
397
0
            }
398
0
399
0
            return MsgProcessed;
400
0
        }
401
0
    case PServiceWorkerContainer::Reply___delete____ID:
402
0
        {
403
0
            return MsgProcessed;
404
0
        }
405
0
    default:
406
0
        {
407
0
            return MsgNotKnown;
408
0
        }
409
0
    }
410
0
}
411
412
auto PServiceWorkerContainerParent::OnMessageReceived(
413
        const Message& msg__,
414
        Message*& reply__) -> PServiceWorkerContainerParent::Result
415
0
{
416
0
    return MsgNotKnown;
417
0
}
418
419
auto PServiceWorkerContainerParent::OnCallReceived(
420
        const Message& msg__,
421
        Message*& reply__) -> PServiceWorkerContainerParent::Result
422
0
{
423
0
    MOZ_ASSERT_UNREACHABLE("message protocol not supported");
424
0
    return MsgNotKnown;
425
0
}
426
427
auto PServiceWorkerContainerParent::GetProtocolTypeId() -> int32_t
428
0
{
429
0
    return PServiceWorkerContainerMsgStart;
430
0
}
431
432
auto PServiceWorkerContainerParent::DestroySubtree(ActorDestroyReason why) -> void
433
0
{
434
0
    // Unregister from our manager.
435
0
    Unregister(Id());
436
0
437
0
    // Reject owning pending responses.
438
0
    (GetIPCChannel())->RejectPendingResponsesForActor(this);
439
0
440
0
    // Finally, destroy "us".
441
0
    ActorDestroy(why);
442
0
}
443
444
auto PServiceWorkerContainerParent::DeallocSubtree() -> void
445
0
{
446
0
}
447
448
449
450
} // namespace dom
451
} // namespace mozilla
452
namespace mozilla {
453
namespace ipc {
454
auto IPDLParamTraits<mozilla::dom::PServiceWorkerContainerParent>::Write(
455
        IPC::Message* aMsg,
456
        mozilla::ipc::IProtocol* aActor,
457
        const paramType& aVar) -> void
458
0
{
459
0
    int32_t id;
460
0
    if ((!(aVar))) {
461
0
        id = 0;
462
0
    }
463
0
    else {
464
0
        id = (aVar)->Id();
465
0
        if ((1) == (id)) {
466
0
            (aActor)->FatalError("actor has been |delete|d");
467
0
        }
468
0
    }
469
0
    WriteIPDLParam(aMsg, aActor, id);
470
0
}
471
472
auto IPDLParamTraits<mozilla::dom::PServiceWorkerContainerParent>::Read(
473
        const IPC::Message* aMsg,
474
        PickleIterator* aIter,
475
        mozilla::ipc::IProtocol* aActor,
476
        paramType* aVar) -> bool
477
0
{
478
0
    mozilla::Maybe<mozilla::ipc::IProtocol*> actor = (aActor)->ReadActor(aMsg, aIter, true, "PServiceWorkerContainer", PServiceWorkerContainerMsgStart);
479
0
    if ((actor).isNothing()) {
480
0
        return false;
481
0
    }
482
0
483
0
    (*(aVar)) = static_cast<mozilla::dom::PServiceWorkerContainerParent*>((actor).value());
484
0
    return true;
485
0
}
486
487
} // namespace ipc
488
} // namespace mozilla