Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/ipc/ipdl/PCacheStreamControlChild.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/cache/PCacheStreamControlChild.h"
8
#include "mozilla/ipc/IPCStreamUtils.h"
9
#include "nsID.h"
10
11
#include "mozilla/ipc/PBackgroundChild.h"
12
#include "mozilla/ipc/PFileDescriptorSetChild.h"
13
#include "mozilla/ipc/PChildToParentStreamChild.h"
14
#include "mozilla/ipc/PParentToChildStreamChild.h"
15
16
#include "nsIFile.h"
17
#include "GeckoProfiler.h"
18
19
namespace mozilla {
20
namespace dom {
21
namespace cache {
22
23
24
auto PCacheStreamControlChild::Recv__delete__() -> mozilla::ipc::IPCResult
25
0
{
26
0
    return IPC_OK();
27
0
}
28
29
auto PCacheStreamControlChild::ActorDestroy(ActorDestroyReason aWhy) -> void
30
0
{
31
0
}
32
33
MOZ_IMPLICIT PCacheStreamControlChild::PCacheStreamControlChild() :
34
    mozilla::ipc::IProtocol(mozilla::ipc::ChildSide),
35
    mLivenessState(mozilla::ipc::LivenessState::Dead)
36
0
{
37
0
    MOZ_COUNT_CTOR(PCacheStreamControlChild);
38
0
}
39
40
PCacheStreamControlChild::~PCacheStreamControlChild()
41
0
{
42
0
    MOZ_COUNT_DTOR(PCacheStreamControlChild);
43
0
}
44
45
auto PCacheStreamControlChild::Manager() const -> PBackgroundChild*
46
0
{
47
0
    return static_cast<PBackgroundChild*>(IProtocol::Manager());
48
0
}
49
50
auto PCacheStreamControlChild::SendOpenStream(
51
        const nsID& aStreamId,
52
        mozilla::ipc::ResolveCallback<RefPtr<nsIInputStream>>&& aResolve,
53
        mozilla::ipc::RejectCallback&& aReject) -> void
54
0
{
55
0
    IPC::Message* msg__ = PCacheStreamControl::Msg_OpenStream(Id());
56
0
57
0
    WriteIPDLParam(msg__, this, aStreamId);
58
0
    // Sentinel = 'aStreamId'
59
0
    (msg__)->WriteSentinel(1956662475);
60
0
61
0
62
0
63
0
64
0
    if (mozilla::ipc::LoggingEnabledFor("PCacheStreamControlChild")) {
65
0
        mozilla::ipc::LogMessageForProtocol("PCacheStreamControlChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
66
0
    }
67
0
    AUTO_PROFILER_LABEL("PCacheStreamControl::Msg_OpenStream", OTHER);
68
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
69
0
        mozilla::ipc::LogicError("Transition error");
70
0
    }
71
0
72
0
    (GetIPCChannel())->Send(msg__, this, std::move(aResolve), std::move(aReject));
73
0
    return;
74
0
}
75
76
auto PCacheStreamControlChild::SendOpenStream(const nsID& aStreamId) -> RefPtr<OpenStreamPromise>
77
0
{
78
0
79
0
    RefPtr<MozPromise<RefPtr<nsIInputStream>, ResponseRejectReason, false>::Private> promise__ = new MozPromise<RefPtr<nsIInputStream>, ResponseRejectReason, false>::Private(__func__);
80
0
81
0
    SendOpenStream(aStreamId, [promise__](RefPtr<nsIInputStream>&& aValue) {
82
0
        (promise__)->Resolve(std::move(aValue), __func__);
83
0
    }, [promise__](ResponseRejectReason aReason) {
84
0
        (promise__)->Reject(aReason, __func__);
85
0
    });
86
0
    return promise__;
87
0
}
88
89
auto PCacheStreamControlChild::SendNoteClosed(const nsID& aStreamId) -> bool
90
0
{
91
0
    IPC::Message* msg__ = PCacheStreamControl::Msg_NoteClosed(Id());
92
0
93
0
    WriteIPDLParam(msg__, this, aStreamId);
94
0
    // Sentinel = 'aStreamId'
95
0
    (msg__)->WriteSentinel(1956662475);
96
0
97
0
98
0
99
0
100
0
    if (mozilla::ipc::LoggingEnabledFor("PCacheStreamControlChild")) {
101
0
        mozilla::ipc::LogMessageForProtocol("PCacheStreamControlChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
102
0
    }
103
0
    AUTO_PROFILER_LABEL("PCacheStreamControl::Msg_NoteClosed", OTHER);
104
0
    if ((!(StateTransition(false, (&(mLivenessState)))))) {
105
0
        mozilla::ipc::LogicError("Transition error");
106
0
    }
107
0
108
0
    bool sendok__ = (GetIPCChannel())->Send(msg__);
109
0
    return sendok__;
110
0
}
111
112
auto PCacheStreamControlChild::RemoveManagee(
113
        int32_t aProtocolId,
114
        IProtocol* aListener) -> void
115
0
{
116
0
    FatalError("unreached");
117
0
    return;
118
0
}
119
120
auto PCacheStreamControlChild::OnMessageReceived(const Message& msg__) -> PCacheStreamControlChild::Result
121
0
{
122
0
    switch ((msg__).type()) {
123
0
    case PCacheStreamControl::Reply_OpenStream__ID:
124
0
        {
125
0
            if (mozilla::ipc::LoggingEnabledFor("PCacheStreamControlChild")) {
126
0
                mozilla::ipc::LogMessageForProtocol("PCacheStreamControlChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
127
0
            }
128
0
            AUTO_PROFILER_LABEL("PCacheStreamControl::Msg_OpenStream", OTHER);
129
0
130
0
            PickleIterator iter__(msg__);
131
0
            bool resolve__;
132
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(resolve__)))))) {
133
0
                FatalError("Error deserializing 'resolve__'");
134
0
                return MsgValueError;
135
0
            }
136
0
            // Sentinel = 'resolve__'
137
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3997392463)))) {
138
0
                mozilla::ipc::SentinelReadError("Error deserializing 'resolve__'");
139
0
                return MsgValueError;
140
0
            }
141
0
142
0
            UniquePtr<MessageChannel::UntypedCallbackHolder> untypedCallback = (GetIPCChannel())->PopCallback(msg__);
143
0
            MessageChannel::CallbackHolder<RefPtr<nsIInputStream>>* callback = static_cast<MessageChannel::CallbackHolder<RefPtr<nsIInputStream>>*>((untypedCallback).get());
144
0
            if ((!(callback))) {
145
0
                FatalError("Error unknown callback");
146
0
                return MsgProcessingError;
147
0
            }
148
0
            if (resolve__) {
149
0
                RefPtr<nsIInputStream> aStream;
150
0
151
0
                if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aStream)))))) {
152
0
                    FatalError("Error deserializing 'RefPtr'");
153
0
                    return MsgValueError;
154
0
                }
155
0
                // Sentinel = 'aStream'
156
0
                if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 3415320318)))) {
157
0
                    mozilla::ipc::SentinelReadError("Error deserializing 'RefPtr'");
158
0
                    return MsgValueError;
159
0
                }
160
0
                (msg__).EndRead(iter__, (msg__).type());
161
0
                (callback)->Resolve(std::move(aStream));
162
0
            }
163
0
            else {
164
0
                ResponseRejectReason reason__;
165
0
                if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(reason__)))))) {
166
0
                    FatalError("Error deserializing 'reason__'");
167
0
                    return MsgValueError;
168
0
                }
169
0
                // Sentinel = 'reason__'
170
0
                if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 913452670)))) {
171
0
                    mozilla::ipc::SentinelReadError("Error deserializing 'reason__'");
172
0
                    return MsgValueError;
173
0
                }
174
0
                (msg__).EndRead(iter__, (msg__).type());
175
0
                (callback)->Reject(reason__);
176
0
            }
177
0
            return MsgProcessed;
178
0
        }
179
0
    case PCacheStreamControl::Msg_Close__ID:
180
0
        {
181
0
            if (mozilla::ipc::LoggingEnabledFor("PCacheStreamControlChild")) {
182
0
                mozilla::ipc::LogMessageForProtocol("PCacheStreamControlChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
183
0
            }
184
0
            AUTO_PROFILER_LABEL("PCacheStreamControl::Msg_Close", OTHER);
185
0
186
0
            PickleIterator iter__(msg__);
187
0
            nsID aStreamId;
188
0
189
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(aStreamId)))))) {
190
0
                FatalError("Error deserializing 'nsID'");
191
0
                return MsgValueError;
192
0
            }
193
0
            // Sentinel = 'aStreamId'
194
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 1956662475)))) {
195
0
                mozilla::ipc::SentinelReadError("Error deserializing 'nsID'");
196
0
                return MsgValueError;
197
0
            }
198
0
            (msg__).EndRead(iter__, (msg__).type());
199
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
200
0
                FatalError("Transition error");
201
0
                return MsgValueError;
202
0
            }
203
0
            if ((!(RecvClose(aStreamId)))) {
204
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
205
0
                // Error handled in mozilla::ipc::IPCResult
206
0
                return MsgProcessingError;
207
0
            }
208
0
209
0
            return MsgProcessed;
210
0
        }
211
0
    case PCacheStreamControl::Msg_CloseAll__ID:
212
0
        {
213
0
            if (mozilla::ipc::LoggingEnabledFor("PCacheStreamControlChild")) {
214
0
                mozilla::ipc::LogMessageForProtocol("PCacheStreamControlChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
215
0
            }
216
0
            AUTO_PROFILER_LABEL("PCacheStreamControl::Msg_CloseAll", OTHER);
217
0
218
0
            if ((!(StateTransition(false, (&(mLivenessState)))))) {
219
0
                FatalError("Transition error");
220
0
                return MsgValueError;
221
0
            }
222
0
            if ((!(RecvCloseAll()))) {
223
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
224
0
                // Error handled in mozilla::ipc::IPCResult
225
0
                return MsgProcessingError;
226
0
            }
227
0
228
0
            return MsgProcessed;
229
0
        }
230
0
    case PCacheStreamControl::Msg___delete____ID:
231
0
        {
232
0
            if (mozilla::ipc::LoggingEnabledFor("PCacheStreamControlChild")) {
233
0
                mozilla::ipc::LogMessageForProtocol("PCacheStreamControlChild", OtherPid(), "Received ", ((&(msg__)))->type(), mozilla::ipc::MessageDirection::eReceiving);
234
0
            }
235
0
            AUTO_PROFILER_LABEL("PCacheStreamControl::Msg___delete__", OTHER);
236
0
237
0
            PickleIterator iter__(msg__);
238
0
            PCacheStreamControlChild* actor;
239
0
240
0
            if ((!(ReadIPDLParam((&(msg__)), (&(iter__)), this, (&(actor)))))) {
241
0
                FatalError("Error deserializing 'PCacheStreamControlChild'");
242
0
                return MsgValueError;
243
0
            }
244
0
            if ((!((*((&(actor))))))) {
245
0
                FatalError("Error deserializing 'PCacheStreamControlChild'");
246
0
                return MsgValueError;
247
0
            }
248
0
            // Sentinel = 'actor'
249
0
            if ((!(((&(msg__)))->ReadSentinel((&(iter__)), 875202478)))) {
250
0
                mozilla::ipc::SentinelReadError("Error deserializing 'PCacheStreamControlChild'");
251
0
                return MsgValueError;
252
0
            }
253
0
            (msg__).EndRead(iter__, (msg__).type());
254
0
            if ((!(StateTransition(true, (&(mLivenessState)))))) {
255
0
                FatalError("Transition error");
256
0
                return MsgValueError;
257
0
            }
258
0
            if ((!(Recv__delete__()))) {
259
0
                mozilla::ipc::ProtocolErrorBreakpoint("Handler returned error code!");
260
0
                // Error handled in mozilla::ipc::IPCResult
261
0
                return MsgProcessingError;
262
0
            }
263
0
264
0
265
0
            IProtocol* mgr = (actor)->Manager();
266
0
            (actor)->DestroySubtree(Deletion);
267
0
            (actor)->DeallocSubtree();
268
0
            (mgr)->RemoveManagee(PCacheStreamControlMsgStart, actor);
269
0
270
0
            return MsgProcessed;
271
0
        }
272
0
    default:
273
0
        {
274
0
            return MsgNotKnown;
275
0
        }
276
0
    }
277
0
}
278
279
auto PCacheStreamControlChild::OnMessageReceived(
280
        const Message& msg__,
281
        Message*& reply__) -> PCacheStreamControlChild::Result
282
0
{
283
0
    return MsgNotKnown;
284
0
}
285
286
auto PCacheStreamControlChild::OnCallReceived(
287
        const Message& msg__,
288
        Message*& reply__) -> PCacheStreamControlChild::Result
289
0
{
290
0
    MOZ_ASSERT_UNREACHABLE("message protocol not supported");
291
0
    return MsgNotKnown;
292
0
}
293
294
auto PCacheStreamControlChild::GetProtocolTypeId() -> int32_t
295
0
{
296
0
    return PCacheStreamControlMsgStart;
297
0
}
298
299
auto PCacheStreamControlChild::DestroySubtree(ActorDestroyReason why) -> void
300
0
{
301
0
    // Unregister from our manager.
302
0
    Unregister(Id());
303
0
304
0
    // Reject owning pending responses.
305
0
    (GetIPCChannel())->RejectPendingResponsesForActor(this);
306
0
307
0
    // Finally, destroy "us".
308
0
    ActorDestroy(why);
309
0
}
310
311
auto PCacheStreamControlChild::DeallocSubtree() -> void
312
0
{
313
0
}
314
315
316
317
} // namespace cache
318
} // namespace dom
319
} // namespace mozilla
320
namespace mozilla {
321
namespace ipc {
322
auto IPDLParamTraits<mozilla::dom::cache::PCacheStreamControlChild>::Write(
323
        IPC::Message* aMsg,
324
        mozilla::ipc::IProtocol* aActor,
325
        const paramType& aVar) -> void
326
0
{
327
0
    int32_t id;
328
0
    if ((!(aVar))) {
329
0
        id = 0;
330
0
    }
331
0
    else {
332
0
        id = (aVar)->Id();
333
0
        if ((1) == (id)) {
334
0
            (aActor)->FatalError("actor has been |delete|d");
335
0
        }
336
0
    }
337
0
    WriteIPDLParam(aMsg, aActor, id);
338
0
}
339
340
auto IPDLParamTraits<mozilla::dom::cache::PCacheStreamControlChild>::Read(
341
        const IPC::Message* aMsg,
342
        PickleIterator* aIter,
343
        mozilla::ipc::IProtocol* aActor,
344
        paramType* aVar) -> bool
345
0
{
346
0
    mozilla::Maybe<mozilla::ipc::IProtocol*> actor = (aActor)->ReadActor(aMsg, aIter, true, "PCacheStreamControl", PCacheStreamControlMsgStart);
347
0
    if ((actor).isNothing()) {
348
0
        return false;
349
0
    }
350
0
351
0
    (*(aVar)) = static_cast<mozilla::dom::cache::PCacheStreamControlChild*>((actor).value());
352
0
    return true;
353
0
}
354
355
} // namespace ipc
356
} // namespace mozilla