Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/ipc/ipdl/PGPUChild.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/gfx/PGPUChild.h"
8
9
#include "mozilla/layers/PAPZInputBridgeChild.h"
10
#include "mozilla/layers/PCompositorManagerChild.h"
11
#include "mozilla/layers/PImageBridgeChild.h"
12
#include "mozilla/PProfilerChild.h"
13
#include "mozilla/gfx/PVRGPUChild.h"
14
#include "mozilla/gfx/PVRManagerChild.h"
15
#include "mozilla/gfx/PVsyncBridgeChild.h"
16
#include "mozilla/layers/PUiCompositorControllerChild.h"
17
#include "mozilla/dom/PVideoDecoderManagerChild.h"
18
19
#include "nsIFile.h"
20
#include "GeckoProfiler.h"
21
22
namespace mozilla {
23
namespace gfx {
24
25
26
auto PGPUChild::ActorDestroy(ActorDestroyReason aWhy) -> void
27
0
{
28
0
}
29
30
auto PGPUChild::ProcessingError(
31
        Result aCode,
32
        const char* aReason) -> void
33
0
{
34
0
}
35
36
auto PGPUChild::ShouldContinueFromReplyTimeout() -> bool
37
0
{
38
0
    return true;
39
0
}
40
41
auto PGPUChild::EnteredCxxStack() -> void
42
0
{
43
0
}
44
45
auto PGPUChild::ExitedCxxStack() -> void
46
0
{
47
0
}
48
49
auto PGPUChild::EnteredCall() -> void
50
0
{
51
0
}
52
53
auto PGPUChild::ExitedCall() -> void
54
0
{
55
0
}
56
57
MOZ_IMPLICIT PGPUChild::PGPUChild() :
58
    mozilla::ipc::IToplevelProtocol("PGPUChild", PGPUMsgStart, mozilla::ipc::ChildSide),
59
    mLivenessState(mozilla::ipc::LivenessState::Start)
60
0
{
61
0
    MOZ_COUNT_CTOR(PGPUChild);
62
0
}
63
64
PGPUChild::~PGPUChild()
65
0
{
66
0
    MOZ_COUNT_DTOR(PGPUChild);
67
0
}
68
69
auto PGPUChild::ManagedPAPZInputBridgeChild(nsTArray<PAPZInputBridgeChild*>& aArr) const -> void
70
0
{
71
0
    (mManagedPAPZInputBridgeChild).ToArray(aArr);
72
0
}
73
74
auto PGPUChild::ManagedPAPZInputBridgeChild() const -> const ManagedContainer<PAPZInputBridgeChild>&
75
0
{
76
0
    return mManagedPAPZInputBridgeChild;
77
0
}
78
79
auto PGPUChild::SendPAPZInputBridgeConstructor(const LayersId& aLayersId) -> PAPZInputBridgeChild*
80
0
{
81
0
    return SendPAPZInputBridgeConstructor(AllocPAPZInputBridgeChild(aLayersId), aLayersId);
82
0
}
83
84
auto PGPUChild::SendPAPZInputBridgeConstructor(
85
        PAPZInputBridgeChild* actor,
86
        const LayersId& aLayersId) -> PAPZInputBridgeChild*
87
0
{
88
0
    if ((!(actor))) {
89
0
        NS_WARNING("Error constructing actor PAPZInputBridgeChild");
90
0
        return nullptr;
91
0
    }
92
0
    (actor)->SetManagerAndRegister(this);
93
0
    (mManagedPAPZInputBridgeChild).PutEntry(actor);
94
0
    (actor)->mLivenessState = mozilla::ipc::LivenessState::Start;
95
0
96
0
    IPC::Message* msg__ = PGPU::Msg_PAPZInputBridgeConstructor(MSG_ROUTING_CONTROL);
97
0
98
0
    MOZ_RELEASE_ASSERT(actor, "NULL actor value passed to non-nullable param");
99
0
    WriteIPDLParam(msg__, this, actor);
100
0
    // Sentinel = 'actor'
101
0
    (msg__)->WriteSentinel(875202478);
102
0
    WriteIPDLParam(msg__, this, aLayersId);
103
0
    // Sentinel = 'aLayersId'
104
0
    (msg__)->WriteSentinel(1401196721);
105
0
106
0
107
0
108
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
109
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
110
0
    }
111
0
    AUTO_PROFILER_LABEL("PGPU::Msg_PAPZInputBridgeConstructor", OTHER);
112
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
113
0
        mozilla::ipc::LogicError("Transition error");
114
0
    }
115
0
116
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
117
0
    if ((!(sendok__))) {
118
0
        FatalError("constructor for actor failed");
119
0
        return nullptr;
120
0
    }
121
0
    return actor;
122
0
}
123
124
auto PGPUChild::SendInit(
125
        const nsTArray<GfxPrefSetting>& prefs,
126
        const nsTArray<GfxVarUpdate>& vars,
127
        const DevicePrefs& devicePrefs,
128
        const nsTArray<LayerTreeIdMapping>& mapping) -> bool
129
0
{
130
0
    IPC::Message* msg__ = PGPU::Msg_Init(MSG_ROUTING_CONTROL);
131
0
132
0
    WriteIPDLParam(msg__, this, prefs);
133
0
    // Sentinel = 'prefs'
134
0
    (msg__)->WriteSentinel(3194398011);
135
0
    WriteIPDLParam(msg__, this, vars);
136
0
    // Sentinel = 'vars'
137
0
    (msg__)->WriteSentinel(2632090118);
138
0
    WriteIPDLParam(msg__, this, devicePrefs);
139
0
    // Sentinel = 'devicePrefs'
140
0
    (msg__)->WriteSentinel(2200416183);
141
0
    WriteIPDLParam(msg__, this, mapping);
142
0
    // Sentinel = 'mapping'
143
0
    (msg__)->WriteSentinel(601526733);
144
0
145
0
146
0
147
0
148
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
149
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
150
0
    }
151
0
    AUTO_PROFILER_LABEL("PGPU::Msg_Init", OTHER);
152
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
153
0
        mozilla::ipc::LogicError("Transition error");
154
0
    }
155
0
156
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
157
0
    return sendok__;
158
0
}
159
160
auto PGPUChild::SendInitCompositorManager(const Endpoint<mozilla::layers::PCompositorManagerParent>& endpoint) -> bool
161
0
{
162
0
    IPC::Message* msg__ = PGPU::Msg_InitCompositorManager(MSG_ROUTING_CONTROL);
163
0
164
0
    WriteIPDLParam(msg__, this, endpoint);
165
0
    // Sentinel = 'endpoint'
166
0
    (msg__)->WriteSentinel(3610972515);
167
0
168
0
169
0
170
0
171
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
172
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
173
0
    }
174
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitCompositorManager", OTHER);
175
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
176
0
        mozilla::ipc::LogicError("Transition error");
177
0
    }
178
0
179
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
180
0
    return sendok__;
181
0
}
182
183
auto PGPUChild::SendInitVsyncBridge(const Endpoint<mozilla::gfx::PVsyncBridgeParent>& endpoint) -> bool
184
0
{
185
0
    IPC::Message* msg__ = PGPU::Msg_InitVsyncBridge(MSG_ROUTING_CONTROL);
186
0
187
0
    WriteIPDLParam(msg__, this, endpoint);
188
0
    // Sentinel = 'endpoint'
189
0
    (msg__)->WriteSentinel(3610972515);
190
0
191
0
192
0
193
0
194
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
195
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
196
0
    }
197
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitVsyncBridge", OTHER);
198
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
199
0
        mozilla::ipc::LogicError("Transition error");
200
0
    }
201
0
202
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
203
0
    return sendok__;
204
0
}
205
206
auto PGPUChild::SendInitImageBridge(const Endpoint<mozilla::layers::PImageBridgeParent>& endpoint) -> bool
207
0
{
208
0
    IPC::Message* msg__ = PGPU::Msg_InitImageBridge(MSG_ROUTING_CONTROL);
209
0
210
0
    WriteIPDLParam(msg__, this, endpoint);
211
0
    // Sentinel = 'endpoint'
212
0
    (msg__)->WriteSentinel(3610972515);
213
0
214
0
215
0
216
0
217
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
218
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
219
0
    }
220
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitImageBridge", OTHER);
221
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
222
0
        mozilla::ipc::LogicError("Transition error");
223
0
    }
224
0
225
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
226
0
    return sendok__;
227
0
}
228
229
auto PGPUChild::SendInitVRManager(const Endpoint<mozilla::gfx::PVRManagerParent>& endpoint) -> bool
230
0
{
231
0
    IPC::Message* msg__ = PGPU::Msg_InitVRManager(MSG_ROUTING_CONTROL);
232
0
233
0
    WriteIPDLParam(msg__, this, endpoint);
234
0
    // Sentinel = 'endpoint'
235
0
    (msg__)->WriteSentinel(3610972515);
236
0
237
0
238
0
239
0
240
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
241
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
242
0
    }
243
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitVRManager", OTHER);
244
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
245
0
        mozilla::ipc::LogicError("Transition error");
246
0
    }
247
0
248
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
249
0
    return sendok__;
250
0
}
251
252
auto PGPUChild::SendInitUiCompositorController(
253
        const LayersId& rootLayerTreeId,
254
        const Endpoint<mozilla::layers::PUiCompositorControllerParent>& endpoint) -> bool
255
0
{
256
0
    IPC::Message* msg__ = PGPU::Msg_InitUiCompositorController(MSG_ROUTING_CONTROL);
257
0
258
0
    WriteIPDLParam(msg__, this, rootLayerTreeId);
259
0
    // Sentinel = 'rootLayerTreeId'
260
0
    (msg__)->WriteSentinel(191972583);
261
0
    WriteIPDLParam(msg__, this, endpoint);
262
0
    // Sentinel = 'endpoint'
263
0
    (msg__)->WriteSentinel(3610972515);
264
0
265
0
266
0
267
0
268
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
269
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
270
0
    }
271
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitUiCompositorController", OTHER);
272
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
273
0
        mozilla::ipc::LogicError("Transition error");
274
0
    }
275
0
276
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
277
0
    return sendok__;
278
0
}
279
280
auto PGPUChild::SendInitProfiler(const Endpoint<mozilla::PProfilerChild>& endpoint) -> bool
281
0
{
282
0
    IPC::Message* msg__ = PGPU::Msg_InitProfiler(MSG_ROUTING_CONTROL);
283
0
284
0
    WriteIPDLParam(msg__, this, endpoint);
285
0
    // Sentinel = 'endpoint'
286
0
    (msg__)->WriteSentinel(3610972515);
287
0
288
0
289
0
290
0
291
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
292
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
293
0
    }
294
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitProfiler", OTHER);
295
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
296
0
        mozilla::ipc::LogicError("Transition error");
297
0
    }
298
0
299
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
300
0
    return sendok__;
301
0
}
302
303
auto PGPUChild::SendInitVR(const Endpoint<mozilla::gfx::PVRGPUChild>& endpoint) -> bool
304
0
{
305
0
    IPC::Message* msg__ = PGPU::Msg_InitVR(MSG_ROUTING_CONTROL);
306
0
307
0
    WriteIPDLParam(msg__, this, endpoint);
308
0
    // Sentinel = 'endpoint'
309
0
    (msg__)->WriteSentinel(3610972515);
310
0
311
0
312
0
313
0
314
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
315
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
316
0
    }
317
0
    AUTO_PROFILER_LABEL("PGPU::Msg_InitVR", OTHER);
318
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
319
0
        mozilla::ipc::LogicError("Transition error");
320
0
    }
321
0
322
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
323
0
    return sendok__;
324
0
}
325
326
auto PGPUChild::SendUpdatePref(const GfxPrefSetting& pref) -> bool
327
0
{
328
0
    IPC::Message* msg__ = PGPU::Msg_UpdatePref(MSG_ROUTING_CONTROL);
329
0
330
0
    WriteIPDLParam(msg__, this, pref);
331
0
    // Sentinel = 'pref'
332
0
    (msg__)->WriteSentinel(3089393963);
333
0
334
0
335
0
336
0
337
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
338
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
339
0
    }
340
0
    AUTO_PROFILER_LABEL("PGPU::Msg_UpdatePref", OTHER);
341
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
342
0
        mozilla::ipc::LogicError("Transition error");
343
0
    }
344
0
345
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
346
0
    return sendok__;
347
0
}
348
349
auto PGPUChild::SendUpdateVar(const GfxVarUpdate& var) -> bool
350
0
{
351
0
    IPC::Message* msg__ = PGPU::Msg_UpdateVar(MSG_ROUTING_CONTROL);
352
0
353
0
    WriteIPDLParam(msg__, this, var);
354
0
    // Sentinel = 'var'
355
0
    (msg__)->WriteSentinel(2283110200);
356
0
357
0
358
0
359
0
360
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
361
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
362
0
    }
363
0
    AUTO_PROFILER_LABEL("PGPU::Msg_UpdateVar", OTHER);
364
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
365
0
        mozilla::ipc::LogicError("Transition error");
366
0
    }
367
0
368
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
369
0
    return sendok__;
370
0
}
371
372
auto PGPUChild::SendNewContentCompositorManager(const Endpoint<mozilla::layers::PCompositorManagerParent>& endpoint) -> bool
373
0
{
374
0
    IPC::Message* msg__ = PGPU::Msg_NewContentCompositorManager(MSG_ROUTING_CONTROL);
375
0
376
0
    WriteIPDLParam(msg__, this, endpoint);
377
0
    // Sentinel = 'endpoint'
378
0
    (msg__)->WriteSentinel(3610972515);
379
0
380
0
381
0
382
0
383
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
384
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
385
0
    }
386
0
    AUTO_PROFILER_LABEL("PGPU::Msg_NewContentCompositorManager", OTHER);
387
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
388
0
        mozilla::ipc::LogicError("Transition error");
389
0
    }
390
0
391
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
392
0
    return sendok__;
393
0
}
394
395
auto PGPUChild::SendNewContentImageBridge(const Endpoint<mozilla::layers::PImageBridgeParent>& endpoint) -> bool
396
0
{
397
0
    IPC::Message* msg__ = PGPU::Msg_NewContentImageBridge(MSG_ROUTING_CONTROL);
398
0
399
0
    WriteIPDLParam(msg__, this, endpoint);
400
0
    // Sentinel = 'endpoint'
401
0
    (msg__)->WriteSentinel(3610972515);
402
0
403
0
404
0
405
0
406
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
407
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
408
0
    }
409
0
    AUTO_PROFILER_LABEL("PGPU::Msg_NewContentImageBridge", OTHER);
410
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
411
0
        mozilla::ipc::LogicError("Transition error");
412
0
    }
413
0
414
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
415
0
    return sendok__;
416
0
}
417
418
auto PGPUChild::SendNewContentVRManager(const Endpoint<mozilla::gfx::PVRManagerParent>& endpoint) -> bool
419
0
{
420
0
    IPC::Message* msg__ = PGPU::Msg_NewContentVRManager(MSG_ROUTING_CONTROL);
421
0
422
0
    WriteIPDLParam(msg__, this, endpoint);
423
0
    // Sentinel = 'endpoint'
424
0
    (msg__)->WriteSentinel(3610972515);
425
0
426
0
427
0
428
0
429
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
430
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
431
0
    }
432
0
    AUTO_PROFILER_LABEL("PGPU::Msg_NewContentVRManager", OTHER);
433
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
434
0
        mozilla::ipc::LogicError("Transition error");
435
0
    }
436
0
437
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
438
0
    return sendok__;
439
0
}
440
441
auto PGPUChild::SendNewContentVideoDecoderManager(const Endpoint<mozilla::dom::PVideoDecoderManagerParent>& endpoint) -> bool
442
0
{
443
0
    IPC::Message* msg__ = PGPU::Msg_NewContentVideoDecoderManager(MSG_ROUTING_CONTROL);
444
0
445
0
    WriteIPDLParam(msg__, this, endpoint);
446
0
    // Sentinel = 'endpoint'
447
0
    (msg__)->WriteSentinel(3610972515);
448
0
449
0
450
0
451
0
452
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
453
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
454
0
    }
455
0
    AUTO_PROFILER_LABEL("PGPU::Msg_NewContentVideoDecoderManager", OTHER);
456
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
457
0
        mozilla::ipc::LogicError("Transition error");
458
0
    }
459
0
460
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
461
0
    return sendok__;
462
0
}
463
464
auto PGPUChild::SendAddLayerTreeIdMapping(const LayerTreeIdMapping& mapping) -> bool
465
0
{
466
0
    IPC::Message* msg__ = PGPU::Msg_AddLayerTreeIdMapping(MSG_ROUTING_CONTROL);
467
0
468
0
    WriteIPDLParam(msg__, this, mapping);
469
0
    // Sentinel = 'mapping'
470
0
    (msg__)->WriteSentinel(601526733);
471
0
472
0
473
0
474
0
    Message reply__;
475
0
476
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
477
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
478
0
    }
479
0
    AUTO_PROFILER_LABEL("PGPU::Msg_AddLayerTreeIdMapping", OTHER);
480
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
481
0
        mozilla::ipc::LogicError("Transition error");
482
0
    }
483
0
484
0
    bool sendok__;
485
0
    {
486
0
        AUTO_PROFILER_TRACING("IPC", "PGPU::Msg_AddLayerTreeIdMapping");
487
0
        sendok__ = (GetIPCChannel())->Send(msg__, (&(reply__)));
488
0
    }
489
0
    if ((!(sendok__))) {
490
0
        return false;
491
0
    }
492
0
493
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
494
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received reply ", ((&(reply__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
495
0
    }
496
0
497
0
    return true;
498
0
}
499
500
auto PGPUChild::SendRemoveLayerTreeIdMapping(const LayerTreeIdMapping& mapping) -> bool
501
0
{
502
0
    IPC::Message* msg__ = PGPU::Msg_RemoveLayerTreeIdMapping(MSG_ROUTING_CONTROL);
503
0
504
0
    WriteIPDLParam(msg__, this, mapping);
505
0
    // Sentinel = 'mapping'
506
0
    (msg__)->WriteSentinel(601526733);
507
0
508
0
509
0
510
0
511
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
512
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
513
0
    }
514
0
    AUTO_PROFILER_LABEL("PGPU::Msg_RemoveLayerTreeIdMapping", OTHER);
515
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
516
0
        mozilla::ipc::LogicError("Transition error");
517
0
    }
518
0
519
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
520
0
    return sendok__;
521
0
}
522
523
auto PGPUChild::SendGetDeviceStatus(GPUDeviceData* status) -> bool
524
0
{
525
0
    IPC::Message* msg__ = PGPU::Msg_GetDeviceStatus(MSG_ROUTING_CONTROL);
526
0
527
0
528
0
529
0
530
0
    Message reply__;
531
0
532
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
533
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
534
0
    }
535
0
    AUTO_PROFILER_LABEL("PGPU::Msg_GetDeviceStatus", OTHER);
536
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
537
0
        mozilla::ipc::LogicError("Transition error");
538
0
    }
539
0
540
0
    bool sendok__;
541
0
    {
542
0
        AUTO_PROFILER_TRACING("IPC", "PGPU::Msg_GetDeviceStatus");
543
0
        sendok__ = (GetIPCChannel())->Send(msg__, (&(reply__)));
544
0
    }
545
0
    if ((!(sendok__))) {
546
0
        return false;
547
0
    }
548
0
549
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
550
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received reply ", ((&(reply__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
551
0
    }
552
0
553
0
    PickleIterator iter__(reply__);
554
0
555
0
    if ((!(ReadIPDLParam((&(reply__)), (&(iter__)), this, status)))) {
556
0
        FatalError("Error deserializing 'GPUDeviceData'");
557
0
        return false;
558
0
    }
559
0
    // Sentinel = 'status'
560
0
    if ((!(((&(reply__)))->ReadSentinel((&(iter__)), 3714608576)))) {
561
0
        mozilla::ipc::SentinelReadError("Error deserializing 'GPUDeviceData'");
562
0
        return false;
563
0
    }
564
0
    (reply__).EndRead(iter__, (reply__).type());
565
0
566
0
    return true;
567
0
}
568
569
auto PGPUChild::SendSimulateDeviceReset(GPUDeviceData* status) -> bool
570
0
{
571
0
    IPC::Message* msg__ = PGPU::Msg_SimulateDeviceReset(MSG_ROUTING_CONTROL);
572
0
573
0
574
0
575
0
576
0
    Message reply__;
577
0
578
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
579
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
580
0
    }
581
0
    AUTO_PROFILER_LABEL("PGPU::Msg_SimulateDeviceReset", OTHER);
582
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
583
0
        mozilla::ipc::LogicError("Transition error");
584
0
    }
585
0
586
0
    bool sendok__;
587
0
    {
588
0
        AUTO_PROFILER_TRACING("IPC", "PGPU::Msg_SimulateDeviceReset");
589
0
        sendok__ = (GetIPCChannel())->Send(msg__, (&(reply__)));
590
0
    }
591
0
    if ((!(sendok__))) {
592
0
        return false;
593
0
    }
594
0
595
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
596
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received reply ", ((&(reply__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
597
0
    }
598
0
599
0
    PickleIterator iter__(reply__);
600
0
601
0
    if ((!(ReadIPDLParam((&(reply__)), (&(iter__)), this, status)))) {
602
0
        FatalError("Error deserializing 'GPUDeviceData'");
603
0
        return false;
604
0
    }
605
0
    // Sentinel = 'status'
606
0
    if ((!(((&(reply__)))->ReadSentinel((&(iter__)), 3714608576)))) {
607
0
        mozilla::ipc::SentinelReadError("Error deserializing 'GPUDeviceData'");
608
0
        return false;
609
0
    }
610
0
    (reply__).EndRead(iter__, (reply__).type());
611
0
612
0
    return true;
613
0
}
614
615
auto PGPUChild::SendNotifyGpuObservers(const nsCString& aTopic) -> bool
616
0
{
617
0
    IPC::Message* msg__ = PGPU::Msg_NotifyGpuObservers(MSG_ROUTING_CONTROL);
618
0
619
0
    WriteIPDLParam(msg__, this, aTopic);
620
0
    // Sentinel = 'aTopic'
621
0
    (msg__)->WriteSentinel(2759450316);
622
0
623
0
624
0
625
0
626
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
627
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
628
0
    }
629
0
    AUTO_PROFILER_LABEL("PGPU::Msg_NotifyGpuObservers", OTHER);
630
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
631
0
        mozilla::ipc::LogicError("Transition error");
632
0
    }
633
0
634
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
635
0
    return sendok__;
636
0
}
637
638
auto PGPUChild::SendRequestMemoryReport(
639
        const uint32_t& generation,
640
        const bool& anonymize,
641
        const bool& minimizeMemoryUsage,
642
        const MaybeFileDesc& DMDFile) -> bool
643
0
{
644
0
    IPC::Message* msg__ = PGPU::Msg_RequestMemoryReport(MSG_ROUTING_CONTROL);
645
0
646
0
    WriteIPDLParam(msg__, this, generation);
647
0
    // Sentinel = 'generation'
648
0
    (msg__)->WriteSentinel(1396961928);
649
0
    WriteIPDLParam(msg__, this, anonymize);
650
0
    // Sentinel = 'anonymize'
651
0
    (msg__)->WriteSentinel(3334711915);
652
0
    WriteIPDLParam(msg__, this, minimizeMemoryUsage);
653
0
    // Sentinel = 'minimizeMemoryUsage'
654
0
    (msg__)->WriteSentinel(3442464661);
655
0
    WriteIPDLParam(msg__, this, DMDFile);
656
0
    // Sentinel = 'DMDFile'
657
0
    (msg__)->WriteSentinel(3739167222);
658
0
659
0
660
0
661
0
662
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
663
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
664
0
    }
665
0
    AUTO_PROFILER_LABEL("PGPU::Msg_RequestMemoryReport", OTHER);
666
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
667
0
        mozilla::ipc::LogicError("Transition error");
668
0
    }
669
0
670
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
671
0
    return sendok__;
672
0
}
673
674
auto PGPUChild::SendShutdownVR() -> bool
675
0
{
676
0
    IPC::Message* msg__ = PGPU::Msg_ShutdownVR(MSG_ROUTING_CONTROL);
677
0
678
0
679
0
680
0
681
0
682
0
    if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
683
0
        mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
684
0
    }
685
0
    AUTO_PROFILER_LABEL("PGPU::Msg_ShutdownVR", OTHER);
686
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
687
0
        mozilla::ipc::LogicError("Transition error");
688
0
    }
689
0
690
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
691
0
    return sendok__;
692
0
}
693
694
auto PGPUChild::RemoveManagee(
695
        int32_t aProtocolId,
696
        IProtocol* aListener) -> void
697
0
{
698
0
    switch (aProtocolId) {
699
0
    case PAPZInputBridgeMsgStart:
700
0
        {
701
0
            PAPZInputBridgeChild* actor = static_cast<PAPZInputBridgeChild*>(aListener);
702
0
            auto& container = mManagedPAPZInputBridgeChild;
703
0
            MOZ_RELEASE_ASSERT((container).Contains(actor), "actor not managed by this!");
704
0
705
0
            (container).RemoveEntry(actor);
706
0
            DeallocPAPZInputBridgeChild(actor);
707
0
            return;
708
0
        }
709
0
    default:
710
0
        {
711
0
            FatalError("unreached");
712
0
            return;
713
0
        }
714
0
    }
715
0
}
716
717
auto PGPUChild::OnMessageReceived(const Message& msg__) -> PGPUChild::Result
718
0
{
719
0
    int32_t route__ = (msg__).routing_id();
720
0
    if ((MSG_ROUTING_CONTROL) != (route__)) {
721
0
        IProtocol* routed__ = Lookup(route__);
722
0
        if ((!(routed__))) {
723
0
            return MsgRouteError;
724
0
        }
725
0
        return (routed__)->OnMessageReceived(msg__);
726
0
    }
727
0
728
0
    switch ((msg__).type()) {
729
0
    case PGPU::Reply_PAPZInputBridgeConstructor__ID:
730
0
        {
731
0
            return MsgProcessed;
732
0
        }
733
0
    case PGPU::Msg_InitComplete__ID:
734
0
        {
735
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
736
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
737
0
            }
738
0
            AUTO_PROFILER_LABEL("PGPU::Msg_InitComplete", OTHER);
739
0
740
0
            PickleIterator iter__(msg__);
741
0
            GPUDeviceData data;
742
0
743
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(data)))))) {
744
0
                FatalError("Error deserializing 'GPUDeviceData'");
745
0
                return MsgValueError;
746
0
            }
747
0
            // Sentinel = 'data'
748
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 843352540)))) {
749
0
                mozilla::ipc::SentinelReadError("Error deserializing 'GPUDeviceData'");
750
0
                return MsgValueError;
751
0
            }
752
0
            (msg__).EndRead(iter__, (msg__).type());
753
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
754
0
                FatalError("Transition error");
755
0
                return MsgValueError;
756
0
            }
757
0
            if ((!(RecvInitComplete(data)))) {
758
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
759
0
                // Error handled in mozilla::ipc::IPCResult
760
0
                return MsgProcessingError;
761
0
            }
762
0
763
0
            return MsgProcessed;
764
0
        }
765
0
    case PGPU::Msg_ReportCheckerboard__ID:
766
0
        {
767
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
768
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
769
0
            }
770
0
            AUTO_PROFILER_LABEL("PGPU::Msg_ReportCheckerboard", OTHER);
771
0
772
0
            PickleIterator iter__(msg__);
773
0
            uint32_t severity;
774
0
            nsCString log;
775
0
776
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(severity)))))) {
777
0
                FatalError("Error deserializing 'uint32_t'");
778
0
                return MsgValueError;
779
0
            }
780
0
            // Sentinel = 'severity'
781
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3651995045)))) {
782
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint32_t'");
783
0
                return MsgValueError;
784
0
            }
785
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(log)))))) {
786
0
                FatalError("Error deserializing 'nsCString'");
787
0
                return MsgValueError;
788
0
            }
789
0
            // Sentinel = 'log'
790
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 914042661)))) {
791
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
792
0
                return MsgValueError;
793
0
            }
794
0
            (msg__).EndRead(iter__, (msg__).type());
795
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
796
0
                FatalError("Transition error");
797
0
                return MsgValueError;
798
0
            }
799
0
            if ((!(RecvReportCheckerboard(severity, log)))) {
800
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
801
0
                // Error handled in mozilla::ipc::IPCResult
802
0
                return MsgProcessingError;
803
0
            }
804
0
805
0
            return MsgProcessed;
806
0
        }
807
0
    case PGPU::Msg_GraphicsError__ID:
808
0
        {
809
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
810
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
811
0
            }
812
0
            AUTO_PROFILER_LABEL("PGPU::Msg_GraphicsError", OTHER);
813
0
814
0
            PickleIterator iter__(msg__);
815
0
            nsCString aError;
816
0
817
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aError)))))) {
818
0
                FatalError("Error deserializing 'nsCString'");
819
0
                return MsgValueError;
820
0
            }
821
0
            // Sentinel = 'aError'
822
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3299422495)))) {
823
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
824
0
                return MsgValueError;
825
0
            }
826
0
            (msg__).EndRead(iter__, (msg__).type());
827
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
828
0
                FatalError("Transition error");
829
0
                return MsgValueError;
830
0
            }
831
0
            if ((!(RecvGraphicsError(aError)))) {
832
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
833
0
                // Error handled in mozilla::ipc::IPCResult
834
0
                return MsgProcessingError;
835
0
            }
836
0
837
0
            return MsgProcessed;
838
0
        }
839
0
    case PGPU::Msg_InitCrashReporter__ID:
840
0
        {
841
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
842
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
843
0
            }
844
0
            AUTO_PROFILER_LABEL("PGPU::Msg_InitCrashReporter", OTHER);
845
0
846
0
            PickleIterator iter__(msg__);
847
0
            Shmem shmem;
848
0
            NativeThreadId threadId;
849
0
850
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(shmem)))))) {
851
0
                FatalError("Error deserializing 'Shmem'");
852
0
                return MsgValueError;
853
0
            }
854
0
            // Sentinel = 'shmem'
855
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 4252604405)))) {
856
0
                mozilla::ipc::SentinelReadError("Error deserializing 'Shmem'");
857
0
                return MsgValueError;
858
0
            }
859
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(threadId)))))) {
860
0
                FatalError("Error deserializing 'NativeThreadId'");
861
0
                return MsgValueError;
862
0
            }
863
0
            // Sentinel = 'threadId'
864
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3657055895)))) {
865
0
                mozilla::ipc::SentinelReadError("Error deserializing 'NativeThreadId'");
866
0
                return MsgValueError;
867
0
            }
868
0
            (msg__).EndRead(iter__, (msg__).type());
869
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
870
0
                FatalError("Transition error");
871
0
                return MsgValueError;
872
0
            }
873
0
            if ((!(RecvInitCrashReporter(std::move(shmem), threadId)))) {
874
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
875
0
                // Error handled in mozilla::ipc::IPCResult
876
0
                return MsgProcessingError;
877
0
            }
878
0
879
0
            return MsgProcessed;
880
0
        }
881
0
    case PGPU::Msg_CreateVRProcess__ID:
882
0
        {
883
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
884
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
885
0
            }
886
0
            AUTO_PROFILER_LABEL("PGPU::Msg_CreateVRProcess", OTHER);
887
0
888
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
889
0
                FatalError("Transition error");
890
0
                return MsgValueError;
891
0
            }
892
0
            if ((!(RecvCreateVRProcess()))) {
893
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
894
0
                // Error handled in mozilla::ipc::IPCResult
895
0
                return MsgProcessingError;
896
0
            }
897
0
898
0
            return MsgProcessed;
899
0
        }
900
0
    case PGPU::Msg_NotifyUiObservers__ID:
901
0
        {
902
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
903
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
904
0
            }
905
0
            AUTO_PROFILER_LABEL("PGPU::Msg_NotifyUiObservers", OTHER);
906
0
907
0
            PickleIterator iter__(msg__);
908
0
            nsCString aTopic;
909
0
910
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aTopic)))))) {
911
0
                FatalError("Error deserializing 'nsCString'");
912
0
                return MsgValueError;
913
0
            }
914
0
            // Sentinel = 'aTopic'
915
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2759450316)))) {
916
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
917
0
                return MsgValueError;
918
0
            }
919
0
            (msg__).EndRead(iter__, (msg__).type());
920
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
921
0
                FatalError("Transition error");
922
0
                return MsgValueError;
923
0
            }
924
0
            if ((!(RecvNotifyUiObservers(aTopic)))) {
925
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
926
0
                // Error handled in mozilla::ipc::IPCResult
927
0
                return MsgProcessingError;
928
0
            }
929
0
930
0
            return MsgProcessed;
931
0
        }
932
0
    case PGPU::Msg_AccumulateChildHistograms__ID:
933
0
        {
934
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
935
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
936
0
            }
937
0
            AUTO_PROFILER_LABEL("PGPU::Msg_AccumulateChildHistograms", OTHER);
938
0
939
0
            PickleIterator iter__(msg__);
940
0
            nsTArray<HistogramAccumulation> accumulations;
941
0
942
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(accumulations)))))) {
943
0
                FatalError("Error deserializing 'nsTArray'");
944
0
                return MsgValueError;
945
0
            }
946
0
            // Sentinel = 'accumulations'
947
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2180708333)))) {
948
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
949
0
                return MsgValueError;
950
0
            }
951
0
            (msg__).EndRead(iter__, (msg__).type());
952
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
953
0
                FatalError("Transition error");
954
0
                return MsgValueError;
955
0
            }
956
0
            if ((!(RecvAccumulateChildHistograms(std::move(accumulations))))) {
957
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
958
0
                // Error handled in mozilla::ipc::IPCResult
959
0
                return MsgProcessingError;
960
0
            }
961
0
962
0
            return MsgProcessed;
963
0
        }
964
0
    case PGPU::Msg_AccumulateChildKeyedHistograms__ID:
965
0
        {
966
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
967
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
968
0
            }
969
0
            AUTO_PROFILER_LABEL("PGPU::Msg_AccumulateChildKeyedHistograms", OTHER);
970
0
971
0
            PickleIterator iter__(msg__);
972
0
            nsTArray<KeyedHistogramAccumulation> accumulations;
973
0
974
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(accumulations)))))) {
975
0
                FatalError("Error deserializing 'nsTArray'");
976
0
                return MsgValueError;
977
0
            }
978
0
            // Sentinel = 'accumulations'
979
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2180708333)))) {
980
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
981
0
                return MsgValueError;
982
0
            }
983
0
            (msg__).EndRead(iter__, (msg__).type());
984
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
985
0
                FatalError("Transition error");
986
0
                return MsgValueError;
987
0
            }
988
0
            if ((!(RecvAccumulateChildKeyedHistograms(std::move(accumulations))))) {
989
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
990
0
                // Error handled in mozilla::ipc::IPCResult
991
0
                return MsgProcessingError;
992
0
            }
993
0
994
0
            return MsgProcessed;
995
0
        }
996
0
    case PGPU::Msg_UpdateChildScalars__ID:
997
0
        {
998
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
999
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1000
0
            }
1001
0
            AUTO_PROFILER_LABEL("PGPU::Msg_UpdateChildScalars", OTHER);
1002
0
1003
0
            PickleIterator iter__(msg__);
1004
0
            nsTArray<ScalarAction> actions;
1005
0
1006
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(actions)))))) {
1007
0
                FatalError("Error deserializing 'nsTArray'");
1008
0
                return MsgValueError;
1009
0
            }
1010
0
            // Sentinel = 'actions'
1011
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3189730830)))) {
1012
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
1013
0
                return MsgValueError;
1014
0
            }
1015
0
            (msg__).EndRead(iter__, (msg__).type());
1016
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1017
0
                FatalError("Transition error");
1018
0
                return MsgValueError;
1019
0
            }
1020
0
            if ((!(RecvUpdateChildScalars(std::move(actions))))) {
1021
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1022
0
                // Error handled in mozilla::ipc::IPCResult
1023
0
                return MsgProcessingError;
1024
0
            }
1025
0
1026
0
            return MsgProcessed;
1027
0
        }
1028
0
    case PGPU::Msg_UpdateChildKeyedScalars__ID:
1029
0
        {
1030
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1031
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1032
0
            }
1033
0
            AUTO_PROFILER_LABEL("PGPU::Msg_UpdateChildKeyedScalars", OTHER);
1034
0
1035
0
            PickleIterator iter__(msg__);
1036
0
            nsTArray<KeyedScalarAction> actions;
1037
0
1038
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(actions)))))) {
1039
0
                FatalError("Error deserializing 'nsTArray'");
1040
0
                return MsgValueError;
1041
0
            }
1042
0
            // Sentinel = 'actions'
1043
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3189730830)))) {
1044
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
1045
0
                return MsgValueError;
1046
0
            }
1047
0
            (msg__).EndRead(iter__, (msg__).type());
1048
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1049
0
                FatalError("Transition error");
1050
0
                return MsgValueError;
1051
0
            }
1052
0
            if ((!(RecvUpdateChildKeyedScalars(std::move(actions))))) {
1053
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1054
0
                // Error handled in mozilla::ipc::IPCResult
1055
0
                return MsgProcessingError;
1056
0
            }
1057
0
1058
0
            return MsgProcessed;
1059
0
        }
1060
0
    case PGPU::Msg_RecordChildEvents__ID:
1061
0
        {
1062
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1063
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1064
0
            }
1065
0
            AUTO_PROFILER_LABEL("PGPU::Msg_RecordChildEvents", OTHER);
1066
0
1067
0
            PickleIterator iter__(msg__);
1068
0
            nsTArray<ChildEventData> events;
1069
0
1070
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(events)))))) {
1071
0
                FatalError("Error deserializing 'nsTArray'");
1072
0
                return MsgValueError;
1073
0
            }
1074
0
            // Sentinel = 'events'
1075
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 1921707453)))) {
1076
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsTArray'");
1077
0
                return MsgValueError;
1078
0
            }
1079
0
            (msg__).EndRead(iter__, (msg__).type());
1080
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1081
0
                FatalError("Transition error");
1082
0
                return MsgValueError;
1083
0
            }
1084
0
            if ((!(RecvRecordChildEvents(std::move(events))))) {
1085
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1086
0
                // Error handled in mozilla::ipc::IPCResult
1087
0
                return MsgProcessingError;
1088
0
            }
1089
0
1090
0
            return MsgProcessed;
1091
0
        }
1092
0
    case PGPU::Msg_RecordDiscardedData__ID:
1093
0
        {
1094
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1095
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1096
0
            }
1097
0
            AUTO_PROFILER_LABEL("PGPU::Msg_RecordDiscardedData", OTHER);
1098
0
1099
0
            PickleIterator iter__(msg__);
1100
0
            DiscardedData data;
1101
0
1102
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(data)))))) {
1103
0
                FatalError("Error deserializing 'DiscardedData'");
1104
0
                return MsgValueError;
1105
0
            }
1106
0
            // Sentinel = 'data'
1107
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 843352540)))) {
1108
0
                mozilla::ipc::SentinelReadError("Error deserializing 'DiscardedData'");
1109
0
                return MsgValueError;
1110
0
            }
1111
0
            (msg__).EndRead(iter__, (msg__).type());
1112
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1113
0
                FatalError("Transition error");
1114
0
                return MsgValueError;
1115
0
            }
1116
0
            if ((!(RecvRecordDiscardedData(data)))) {
1117
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1118
0
                // Error handled in mozilla::ipc::IPCResult
1119
0
                return MsgProcessingError;
1120
0
            }
1121
0
1122
0
            return MsgProcessed;
1123
0
        }
1124
0
    case PGPU::Msg_NotifyDeviceReset__ID:
1125
0
        {
1126
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1127
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1128
0
            }
1129
0
            AUTO_PROFILER_LABEL("PGPU::Msg_NotifyDeviceReset", OTHER);
1130
0
1131
0
            PickleIterator iter__(msg__);
1132
0
            GPUDeviceData status;
1133
0
1134
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(status)))))) {
1135
0
                FatalError("Error deserializing 'GPUDeviceData'");
1136
0
                return MsgValueError;
1137
0
            }
1138
0
            // Sentinel = 'status'
1139
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3714608576)))) {
1140
0
                mozilla::ipc::SentinelReadError("Error deserializing 'GPUDeviceData'");
1141
0
                return MsgValueError;
1142
0
            }
1143
0
            (msg__).EndRead(iter__, (msg__).type());
1144
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1145
0
                FatalError("Transition error");
1146
0
                return MsgValueError;
1147
0
            }
1148
0
            if ((!(RecvNotifyDeviceReset(status)))) {
1149
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1150
0
                // Error handled in mozilla::ipc::IPCResult
1151
0
                return MsgProcessingError;
1152
0
            }
1153
0
1154
0
            return MsgProcessed;
1155
0
        }
1156
0
    case PGPU::Msg_AddMemoryReport__ID:
1157
0
        {
1158
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1159
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1160
0
            }
1161
0
            AUTO_PROFILER_LABEL("PGPU::Msg_AddMemoryReport", OTHER);
1162
0
1163
0
            PickleIterator iter__(msg__);
1164
0
            MemoryReport aReport;
1165
0
1166
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aReport)))))) {
1167
0
                FatalError("Error deserializing 'MemoryReport'");
1168
0
                return MsgValueError;
1169
0
            }
1170
0
            // Sentinel = 'aReport'
1171
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3792799576)))) {
1172
0
                mozilla::ipc::SentinelReadError("Error deserializing 'MemoryReport'");
1173
0
                return MsgValueError;
1174
0
            }
1175
0
            (msg__).EndRead(iter__, (msg__).type());
1176
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1177
0
                FatalError("Transition error");
1178
0
                return MsgValueError;
1179
0
            }
1180
0
            if ((!(RecvAddMemoryReport(aReport)))) {
1181
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1182
0
                // Error handled in mozilla::ipc::IPCResult
1183
0
                return MsgProcessingError;
1184
0
            }
1185
0
1186
0
            return MsgProcessed;
1187
0
        }
1188
0
    case PGPU::Msg_FinishMemoryReport__ID:
1189
0
        {
1190
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1191
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1192
0
            }
1193
0
            AUTO_PROFILER_LABEL("PGPU::Msg_FinishMemoryReport", OTHER);
1194
0
1195
0
            PickleIterator iter__(msg__);
1196
0
            uint32_t aGeneration;
1197
0
1198
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aGeneration)))))) {
1199
0
                FatalError("Error deserializing 'uint32_t'");
1200
0
                return MsgValueError;
1201
0
            }
1202
0
            // Sentinel = 'aGeneration'
1203
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2329783584)))) {
1204
0
                mozilla::ipc::SentinelReadError("Error deserializing 'uint32_t'");
1205
0
                return MsgValueError;
1206
0
            }
1207
0
            (msg__).EndRead(iter__, (msg__).type());
1208
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1209
0
                FatalError("Transition error");
1210
0
                return MsgValueError;
1211
0
            }
1212
0
            if ((!(RecvFinishMemoryReport(aGeneration)))) {
1213
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1214
0
                // Error handled in mozilla::ipc::IPCResult
1215
0
                return MsgProcessingError;
1216
0
            }
1217
0
1218
0
            return MsgProcessed;
1219
0
        }
1220
0
    case PGPU::Msg_UpdateFeature__ID:
1221
0
        {
1222
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1223
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1224
0
            }
1225
0
            AUTO_PROFILER_LABEL("PGPU::Msg_UpdateFeature", OTHER);
1226
0
1227
0
            PickleIterator iter__(msg__);
1228
0
            Feature aFeature;
1229
0
            FeatureFailure aChange;
1230
0
1231
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aFeature)))))) {
1232
0
                FatalError("Error deserializing 'Feature'");
1233
0
                return MsgValueError;
1234
0
            }
1235
0
            // Sentinel = 'aFeature'
1236
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 467571205)))) {
1237
0
                mozilla::ipc::SentinelReadError("Error deserializing 'Feature'");
1238
0
                return MsgValueError;
1239
0
            }
1240
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aChange)))))) {
1241
0
                FatalError("Error deserializing 'FeatureFailure'");
1242
0
                return MsgValueError;
1243
0
            }
1244
0
            // Sentinel = 'aChange'
1245
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 1262903642)))) {
1246
0
                mozilla::ipc::SentinelReadError("Error deserializing 'FeatureFailure'");
1247
0
                return MsgValueError;
1248
0
            }
1249
0
            (msg__).EndRead(iter__, (msg__).type());
1250
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1251
0
                FatalError("Transition error");
1252
0
                return MsgValueError;
1253
0
            }
1254
0
            if ((!(RecvUpdateFeature(aFeature, aChange)))) {
1255
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1256
0
                // Error handled in mozilla::ipc::IPCResult
1257
0
                return MsgProcessingError;
1258
0
            }
1259
0
1260
0
            return MsgProcessed;
1261
0
        }
1262
0
    case PGPU::Msg_UsedFallback__ID:
1263
0
        {
1264
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1265
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1266
0
            }
1267
0
            AUTO_PROFILER_LABEL("PGPU::Msg_UsedFallback", OTHER);
1268
0
1269
0
            PickleIterator iter__(msg__);
1270
0
            Fallback aFallback;
1271
0
            nsCString message;
1272
0
1273
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aFallback)))))) {
1274
0
                FatalError("Error deserializing 'Fallback'");
1275
0
                return MsgValueError;
1276
0
            }
1277
0
            // Sentinel = 'aFallback'
1278
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 2020944874)))) {
1279
0
                mozilla::ipc::SentinelReadError("Error deserializing 'Fallback'");
1280
0
                return MsgValueError;
1281
0
            }
1282
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(message)))))) {
1283
0
                FatalError("Error deserializing 'nsCString'");
1284
0
                return MsgValueError;
1285
0
            }
1286
0
            // Sentinel = 'message'
1287
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 1366108954)))) {
1288
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsCString'");
1289
0
                return MsgValueError;
1290
0
            }
1291
0
            (msg__).EndRead(iter__, (msg__).type());
1292
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1293
0
                FatalError("Transition error");
1294
0
                return MsgValueError;
1295
0
            }
1296
0
            if ((!(RecvUsedFallback(aFallback, message)))) {
1297
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1298
0
                // Error handled in mozilla::ipc::IPCResult
1299
0
                return MsgProcessingError;
1300
0
            }
1301
0
1302
0
            return MsgProcessed;
1303
0
        }
1304
0
    case PGPU::Msg_BHRThreadHang__ID:
1305
0
        {
1306
0
            if (mozilla::ipc::LoggingEnabledFor("PGPUChild")) {
1307
0
                mozilla::ipc::LogMessageForProtocol("PGPUChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
1308
0
            }
1309
0
            AUTO_PROFILER_LABEL("PGPU::Msg_BHRThreadHang", OTHER);
1310
0
1311
0
            PickleIterator iter__(msg__);
1312
0
            HangDetails aDetails;
1313
0
1314
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aDetails)))))) {
1315
0
                FatalError("Error deserializing 'HangDetails'");
1316
0
                return MsgValueError;
1317
0
            }
1318
0
            // Sentinel = 'aDetails'
1319
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 4067591305)))) {
1320
0
                mozilla::ipc::SentinelReadError("Error deserializing 'HangDetails'");
1321
0
                return MsgValueError;
1322
0
            }
1323
0
            (msg__).EndRead(iter__, (msg__).type());
1324
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
1325
0
                FatalError("Transition error");
1326
0
                return MsgValueError;
1327
0
            }
1328
0
            if ((!(RecvBHRThreadHang(aDetails)))) {
1329
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
1330
0
                // Error handled in mozilla::ipc::IPCResult
1331
0
                return MsgProcessingError;
1332
0
            }
1333
0
1334
0
            return MsgProcessed;
1335
0
        }
1336
0
    default:
1337
0
        {
1338
0
            return MsgNotKnown;
1339
0
        }
1340
0
    case SHMEM_CREATED_MESSAGE_TYPE:
1341
0
        {
1342
0
            if ((!(ShmemCreated(msg__)))) {
1343
0
                return MsgPayloadError;
1344
0
            }
1345
0
            return MsgProcessed;
1346
0
        }
1347
0
    case SHMEM_DESTROYED_MESSAGE_TYPE:
1348
0
        {
1349
0
            if ((!(ShmemDestroyed(msg__)))) {
1350
0
                return MsgPayloadError;
1351
0
            }
1352
0
            return MsgProcessed;
1353
0
        }
1354
0
    }
1355
0
}
1356
1357
auto PGPUChild::OnMessageReceived(
1358
        const Message& msg__,
1359
        Message*& reply__) -> PGPUChild::Result
1360
0
{
1361
0
    int32_t route__ = (msg__).routing_id();
1362
0
    if ((MSG_ROUTING_CONTROL) != (route__)) {
1363
0
        IProtocol* routed__ = Lookup(route__);
1364
0
        if ((!(routed__))) {
1365
0
            return MsgRouteError;
1366
0
        }
1367
0
        return (routed__)->OnMessageReceived(msg__, reply__);
1368
0
    }
1369
0
1370
0
    return MsgNotKnown;
1371
0
}
1372
1373
auto PGPUChild::OnCallReceived(
1374
        const Message& msg__,
1375
        Message*& reply__) -> PGPUChild::Result
1376
0
{
1377
0
    MOZ_ASSERT_UNREACHABLE("message protocol not supported");
1378
0
    return MsgNotKnown;
1379
0
}
1380
1381
auto PGPUChild::GetProtocolTypeId() -> int32_t
1382
0
{
1383
0
    return PGPUMsgStart;
1384
0
}
1385
1386
auto PGPUChild::OnChannelClose() -> void
1387
0
{
1388
0
    DestroySubtree(NormalShutdown);
1389
0
    DeallocSubtree();
1390
0
    DeallocShmems();
1391
0
    DeallocPGPUChild();
1392
0
}
1393
1394
auto PGPUChild::OnChannelError() -> void
1395
0
{
1396
0
    DestroySubtree(AbnormalShutdown);
1397
0
    DeallocSubtree();
1398
0
    DeallocShmems();
1399
0
    DeallocPGPUChild();
1400
0
}
1401
1402
auto PGPUChild::DestroySubtree(ActorDestroyReason why) -> void
1403
0
{
1404
0
    ActorDestroyReason subtreewhy = (((why) == (Deletion)) || ((why) == (FailedConstructor)) ? AncestorDeletion : why);
1405
0
1406
0
    {
1407
0
        // Recursively shutting down PAPZInputBridge kids
1408
0
        nsTArray<PAPZInputBridgeChild*> kids;
1409
0
        // Accumulate kids into a stable structure to iterate over
1410
0
        ManagedPAPZInputBridgeChild(kids);
1411
0
        for (auto& kid : kids) {
1412
0
            // Guarding against a child removing a sibling from the list during the iteration.
1413
0
            if ((mManagedPAPZInputBridgeChild).Contains(kid)) {
1414
0
                (kid)->DestroySubtree(subtreewhy);
1415
0
            }
1416
0
        }
1417
0
    }
1418
0
1419
0
    // Reject owning pending responses.
1420
0
    (GetIPCChannel())->RejectPendingResponsesForActor(this);
1421
0
1422
0
    // Finally, destroy "us".
1423
0
    ActorDestroy(why);
1424
0
}
1425
1426
auto PGPUChild::DeallocSubtree() -> void
1427
0
{
1428
0
    {
1429
0
        // Recursively deleting PAPZInputBridge kids
1430
0
        for (auto iter = (mManagedPAPZInputBridgeChild).Iter(); (!((iter).Done())); (iter).Next()) {
1431
0
            (((iter).Get())->GetKey())->DeallocSubtree();
1432
0
        }
1433
0
1434
0
        for (auto iter = (mManagedPAPZInputBridgeChild).Iter(); (!((iter).Done())); (iter).Next()) {
1435
0
            DeallocPAPZInputBridgeChild(((iter).Get())->GetKey());
1436
0
        }
1437
0
        (mManagedPAPZInputBridgeChild).Clear();
1438
0
    }
1439
0
}
1440
1441
auto PGPUChild::DeallocPGPUChild() -> void
1442
0
{
1443
0
}
1444
1445
1446
1447
} // namespace gfx
1448
} // namespace mozilla
1449
namespace mozilla {
1450
namespace ipc {
1451
auto IPDLParamTraits<mozilla::gfx::PGPUChild>::Write(
1452
        IPC::Message* aMsg,
1453
        mozilla::ipc::IProtocol* aActor,
1454
        const paramType& aVar) -> void
1455
0
{
1456
0
    int32_t id;
1457
0
    if ((!(aVar))) {
1458
0
        id = 0;
1459
0
    }
1460
0
    else {
1461
0
        id = (aVar)->Id();
1462
0
        if ((1) == (id)) {
1463
0
            (aActor)->FatalError("actor has been |delete|d");
1464
0
        }
1465
0
    }
1466
0
    WriteIPDLParam(aMsg, aActor, id);
1467
0
}
1468
1469
auto IPDLParamTraits<mozilla::gfx::PGPUChild>::Read(
1470
        const IPC::Message* aMsg,
1471
        PickleIterator* aIter,
1472
        mozilla::ipc::IProtocol* aActor,
1473
        paramType* aVar) -> bool
1474
0
{
1475
0
    mozilla::Maybe<mozilla::ipc::IProtocol*> actor = (aActor)->ReadActor(aMsg, aIter, true, "PGPU", PGPUMsgStart);
1476
0
    if ((actor).isNothing()) {
1477
0
        return false;
1478
0
    }
1479
0
1480
0
    (*(aVar)) = static_cast<mozilla::gfx::PGPUChild*>((actor).value());
1481
0
    return true;
1482
0
}
1483
1484
} // namespace ipc
1485
} // namespace mozilla