1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 :
7 : #include "mozilla/dom/PCrashReporterChild.h"
8 :
9 : #include "mozilla/dom/PContentChild.h"
10 : #include "mozilla/plugins/PPluginModuleChild.h"
11 :
12 : typedef IPC::Message Message;
13 : typedef mozilla::ipc::RPCChannel Channel;
14 : typedef mozilla::ipc::RPCChannel::RPCListener ChannelListener;
15 : typedef base::ProcessHandle ProcessHandle;
16 : typedef mozilla::ipc::AsyncChannel AsyncChannel;
17 : typedef mozilla::ipc::SharedMemory SharedMemory;
18 : typedef mozilla::ipc::Trigger Trigger;
19 : typedef mozilla::ipc::ActorHandle ActorHandle;
20 : typedef mozilla::dom::Mapping Mapping;
21 : typedef mozilla::ipc::Shmem Shmem;
22 : using mozilla::dom::PContentChild;
23 : using mozilla::plugins::PPluginModuleChild;
24 :
25 : namespace mozilla {
26 : namespace dom {
27 :
28 :
29 : void
30 0 : PCrashReporterChild::ActorDestroy(ActorDestroyReason why)
31 : {
32 0 : }
33 :
34 0 : PCrashReporterChild::PCrashReporterChild() :
35 : mId(0),
36 0 : mState(PCrashReporter::__Dead)
37 : {
38 0 : MOZ_COUNT_CTOR(PCrashReporterChild);
39 0 : }
40 :
41 0 : PCrashReporterChild::~PCrashReporterChild()
42 : {
43 0 : MOZ_COUNT_DTOR(PCrashReporterChild);
44 0 : }
45 :
46 : PCrashReporter::State
47 0 : PCrashReporterChild::state()
48 : {
49 0 : return mState;
50 : }
51 :
52 : bool
53 0 : PCrashReporterChild::SendAddLibraryMappings(const InfallibleTArray<Mapping>& m)
54 : {
55 0 : PCrashReporter::Msg_AddLibraryMappings* __msg = new PCrashReporter::Msg_AddLibraryMappings();
56 :
57 0 : Write(m, __msg);
58 :
59 0 : (__msg)->set_routing_id(mId);
60 :
61 :
62 :
63 0 : if (mozilla::ipc::LoggingEnabled()) {
64 0 : (__msg)->Log("[PCrashReporterChild] Sending ", stderr);
65 : }
66 0 : if ((!(PCrashReporter::Transition(mState, Trigger(Trigger::Recv, PCrashReporter::Msg_AddLibraryMappings__ID), (&(mState)))))) {
67 0 : NS_WARNING("bad state transition!");
68 : }
69 :
70 0 : bool __sendok = (mChannel)->Send(__msg);
71 0 : return __sendok;
72 : }
73 :
74 : bool
75 0 : PCrashReporterChild::SendAnnotateCrashReport(
76 : const nsCString& key,
77 : const nsCString& data)
78 : {
79 0 : PCrashReporter::Msg_AnnotateCrashReport* __msg = new PCrashReporter::Msg_AnnotateCrashReport();
80 :
81 0 : Write(key, __msg);
82 0 : Write(data, __msg);
83 :
84 0 : (__msg)->set_routing_id(mId);
85 :
86 :
87 :
88 0 : if (mozilla::ipc::LoggingEnabled()) {
89 0 : (__msg)->Log("[PCrashReporterChild] Sending ", stderr);
90 : }
91 0 : if ((!(PCrashReporter::Transition(mState, Trigger(Trigger::Recv, PCrashReporter::Msg_AnnotateCrashReport__ID), (&(mState)))))) {
92 0 : NS_WARNING("bad state transition!");
93 : }
94 :
95 0 : bool __sendok = (mChannel)->Send(__msg);
96 0 : return __sendok;
97 : }
98 :
99 : bool
100 0 : PCrashReporterChild::SendAppendAppNotes(const nsCString& data)
101 : {
102 0 : PCrashReporter::Msg_AppendAppNotes* __msg = new PCrashReporter::Msg_AppendAppNotes();
103 :
104 0 : Write(data, __msg);
105 :
106 0 : (__msg)->set_routing_id(mId);
107 :
108 :
109 :
110 0 : if (mozilla::ipc::LoggingEnabled()) {
111 0 : (__msg)->Log("[PCrashReporterChild] Sending ", stderr);
112 : }
113 0 : if ((!(PCrashReporter::Transition(mState, Trigger(Trigger::Recv, PCrashReporter::Msg_AppendAppNotes__ID), (&(mState)))))) {
114 0 : NS_WARNING("bad state transition!");
115 : }
116 :
117 0 : bool __sendok = (mChannel)->Send(__msg);
118 0 : return __sendok;
119 : }
120 :
121 : bool
122 0 : PCrashReporterChild::Send__delete__(PCrashReporterChild* actor)
123 : {
124 0 : if ((!(actor))) {
125 0 : return false;
126 : }
127 :
128 0 : if ((!(actor))) {
129 0 : return false;
130 : }
131 :
132 0 : PCrashReporter::Msg___delete__* __msg = new PCrashReporter::Msg___delete__();
133 :
134 0 : (actor)->Write(actor, __msg, false);
135 :
136 0 : (__msg)->set_routing_id((actor)->mId);
137 :
138 :
139 0 : if (mozilla::ipc::LoggingEnabled()) {
140 0 : (__msg)->Log("[PCrashReporterChild] Sending ", stderr);
141 : }
142 0 : if ((!(PCrashReporter::Transition((actor)->mState, Trigger(Trigger::Recv, PCrashReporter::Msg___delete____ID), (&((actor)->mState)))))) {
143 0 : NS_WARNING("bad state transition!");
144 : }
145 :
146 0 : bool __sendok = ((actor)->mChannel)->Send(__msg);
147 :
148 0 : (actor)->DestroySubtree(Deletion);
149 0 : (actor)->DeallocSubtree();
150 0 : ((actor)->mManager)->RemoveManagee(PCrashReporterMsgStart, actor);
151 0 : return __sendok;
152 : }
153 :
154 : int32
155 0 : PCrashReporterChild::Register(ChannelListener* aRouted)
156 : {
157 0 : return (mManager)->Register(aRouted);
158 : }
159 :
160 : int32
161 0 : PCrashReporterChild::RegisterID(
162 : ChannelListener* aRouted,
163 : int32 aId)
164 : {
165 0 : return (mManager)->RegisterID(aRouted, aId);
166 : }
167 :
168 : ChannelListener*
169 0 : PCrashReporterChild::Lookup(int32 aId)
170 : {
171 0 : return (mManager)->Lookup(aId);
172 : }
173 :
174 : void
175 0 : PCrashReporterChild::Unregister(int32 aId)
176 : {
177 0 : return (mManager)->Unregister(aId);
178 : }
179 :
180 : void
181 0 : PCrashReporterChild::RemoveManagee(
182 : int32 aProtocolId,
183 : ChannelListener* aListener)
184 : {
185 0 : NS_RUNTIMEABORT("unreached");
186 : return;
187 : }
188 :
189 : Shmem::SharedMemory*
190 0 : PCrashReporterChild::CreateSharedMemory(
191 : size_t aSize,
192 : Shmem::SharedMemory::SharedMemoryType type,
193 : bool unsafe,
194 : Shmem::id_t* aId)
195 : {
196 0 : return (mManager)->CreateSharedMemory(aSize, type, unsafe, aId);
197 : }
198 :
199 : bool
200 0 : PCrashReporterChild::AdoptSharedMemory(
201 : Shmem::SharedMemory* segment,
202 : Shmem::id_t* aId)
203 : {
204 0 : return (mManager)->AdoptSharedMemory(segment, aId);
205 : }
206 :
207 : Shmem::SharedMemory*
208 0 : PCrashReporterChild::LookupSharedMemory(Shmem::id_t aId)
209 : {
210 0 : return (mManager)->LookupSharedMemory(aId);
211 : }
212 :
213 : bool
214 0 : PCrashReporterChild::IsTrackingSharedMemory(Shmem::SharedMemory* segment)
215 : {
216 0 : return (mManager)->IsTrackingSharedMemory(segment);
217 : }
218 :
219 : bool
220 0 : PCrashReporterChild::DestroySharedMemory(Shmem& aShmem)
221 : {
222 0 : return (mManager)->DestroySharedMemory(aShmem);
223 : }
224 :
225 : ProcessHandle
226 0 : PCrashReporterChild::OtherProcess() const
227 : {
228 0 : return (mManager)->OtherProcess();
229 : }
230 :
231 : AsyncChannel*
232 0 : PCrashReporterChild::GetIPCChannel()
233 : {
234 0 : return mChannel;
235 : }
236 :
237 : PCrashReporterChild::Result
238 0 : PCrashReporterChild::OnMessageReceived(const Message& __msg)
239 : {
240 0 : switch ((__msg).type()) {
241 : case PCrashReporter::Reply___delete____ID:
242 : {
243 0 : return MsgProcessed;
244 : }
245 : default:
246 : {
247 0 : return MsgNotKnown;
248 : }
249 : }
250 : }
251 :
252 : PCrashReporterChild::Result
253 0 : PCrashReporterChild::OnMessageReceived(
254 : const Message& __msg,
255 : Message*& __reply)
256 : {
257 0 : return MsgNotKnown;
258 : }
259 :
260 : PCrashReporterChild::Result
261 0 : PCrashReporterChild::OnCallReceived(
262 : const Message& __msg,
263 : Message*& __reply)
264 : {
265 0 : return MsgNotKnown;
266 : }
267 :
268 : void
269 0 : PCrashReporterChild::OnProcessingError(Result code)
270 : {
271 0 : NS_RUNTIMEABORT("`OnProcessingError' called on non-toplevel actor");
272 0 : }
273 :
274 : bool
275 0 : PCrashReporterChild::OnReplyTimeout()
276 : {
277 0 : NS_RUNTIMEABORT("`OnReplyTimeout' called on non-toplevel actor");
278 0 : return false;
279 : }
280 :
281 : void
282 0 : PCrashReporterChild::OnChannelClose()
283 : {
284 0 : NS_RUNTIMEABORT("`OnClose' called on non-toplevel actor");
285 0 : }
286 :
287 : void
288 0 : PCrashReporterChild::OnChannelError()
289 : {
290 0 : NS_RUNTIMEABORT("`OnError' called on non-toplevel actor");
291 0 : }
292 :
293 : void
294 0 : PCrashReporterChild::OnChannelConnected(int32 pid)
295 : {
296 0 : NS_RUNTIMEABORT("'OnConnected' called on non-toplevel actor");
297 0 : }
298 :
299 : bool
300 0 : PCrashReporterChild::AllocShmem(
301 : size_t aSize,
302 : Shmem::SharedMemory::SharedMemoryType aType,
303 : Shmem* aMem)
304 : {
305 : Shmem::id_t aId;
306 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, false, (&(aId))));
307 0 : if ((!(rawmem))) {
308 0 : return false;
309 : }
310 :
311 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
312 0 : return true;
313 : }
314 :
315 : bool
316 0 : PCrashReporterChild::AllocUnsafeShmem(
317 : size_t aSize,
318 : Shmem::SharedMemory::SharedMemoryType aType,
319 : Shmem* aMem)
320 : {
321 : Shmem::id_t aId;
322 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, true, (&(aId))));
323 0 : if ((!(rawmem))) {
324 0 : return false;
325 : }
326 :
327 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
328 0 : return true;
329 : }
330 :
331 : bool
332 0 : PCrashReporterChild::AdoptShmem(
333 : Shmem& aMem,
334 : Shmem* aOutMem)
335 : {
336 0 : Shmem::SharedMemory* rawmem = (aMem).Segment(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
337 0 : if (((!(rawmem))) || (IsTrackingSharedMemory(rawmem))) {
338 0 : NS_RUNTIMEABORT("bad Shmem");
339 : }
340 :
341 : Shmem::id_t aId;
342 0 : if ((!(AdoptSharedMemory(rawmem, (&(aId)))))) {
343 0 : return false;
344 : }
345 :
346 0 : (*(aOutMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), rawmem, aId);
347 0 : return true;
348 : }
349 :
350 : bool
351 0 : PCrashReporterChild::DeallocShmem(Shmem& aMem)
352 : {
353 0 : bool ok = DestroySharedMemory(aMem);
354 0 : (aMem).forget(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
355 0 : return ok;
356 : }
357 :
358 : void
359 0 : PCrashReporterChild::FatalError(const char* const msg) const
360 : {
361 : // Virtual method to prevent inlining.
362 : // This give us better error reporting.
363 : // See bug 589371
364 :
365 0 : NS_ERROR("IPDL error:");
366 0 : NS_ERROR(msg);
367 :
368 0 : NS_RUNTIMEABORT("[PCrashReporterChild] abort()ing as a result");
369 0 : }
370 :
371 : void
372 0 : PCrashReporterChild::DestroySubtree(ActorDestroyReason why)
373 : {
374 : // Unregister from our manager.
375 0 : Unregister(mId);
376 0 : mId = 1;
377 :
378 : // Finally, destroy "us".
379 0 : ActorDestroy(why);
380 0 : }
381 :
382 : void
383 0 : PCrashReporterChild::DeallocSubtree()
384 : {
385 0 : }
386 :
387 : void
388 0 : PCrashReporterChild::Write(
389 : const InfallibleTArray<Mapping>& __v,
390 : Message* __msg)
391 : {
392 0 : uint32 length = (__v).Length();
393 0 : Write(length, __msg);
394 :
395 0 : for (uint32 i = 0; (i) < (length); (++(i))) {
396 0 : Write(__v[i], __msg);
397 : }
398 0 : }
399 :
400 : bool
401 0 : PCrashReporterChild::Read(
402 : InfallibleTArray<Mapping>* __v,
403 : const Message* __msg,
404 : void** __iter)
405 : {
406 0 : InfallibleTArray<Mapping>& a = (*(__v));
407 : uint32 length;
408 0 : if ((!(Read((&(length)), __msg, __iter)))) {
409 0 : return false;
410 : }
411 :
412 0 : (__v)->SetLength(length);
413 0 : for (uint32 i = 0; (i) < (length); (++(i))) {
414 0 : if ((!(Read((&(a[i])), __msg, __iter)))) {
415 0 : return false;
416 : }
417 : }
418 0 : return true;
419 : }
420 :
421 : void
422 0 : PCrashReporterChild::Write(
423 : PCrashReporterChild* __v,
424 : Message* __msg,
425 : bool __nullable)
426 : {
427 : int32 id;
428 0 : if ((!(__v))) {
429 0 : if ((!(__nullable))) {
430 0 : NS_RUNTIMEABORT("NULL actor value passed to non-nullable param");
431 : }
432 0 : id = 0;
433 : }
434 : else {
435 0 : id = (__v)->mId;
436 0 : if ((1) == (id)) {
437 0 : NS_RUNTIMEABORT("actor has been |delete|d");
438 : }
439 : }
440 :
441 0 : Write(id, __msg);
442 0 : }
443 :
444 : bool
445 0 : PCrashReporterChild::Read(
446 : PCrashReporterChild** __v,
447 : const Message* __msg,
448 : void** __iter,
449 : bool __nullable)
450 : {
451 : int32 id;
452 0 : if ((!(Read((&(id)), __msg, __iter)))) {
453 0 : return false;
454 : }
455 0 : if (((1) == (id)) || (((0) == (id)) && ((!(__nullable))))) {
456 0 : return false;
457 : }
458 :
459 0 : if ((0) == (id)) {
460 0 : (*(__v)) = 0;
461 : }
462 : else {
463 0 : (*(__v)) = static_cast<PCrashReporterChild*>(Lookup(id));
464 0 : if ((!((*(__v))))) {
465 0 : return false;
466 : }
467 : }
468 0 : return true;
469 : }
470 :
471 : void
472 0 : PCrashReporterChild::Write(
473 : const Mapping& __v,
474 : Message* __msg)
475 : {
476 0 : Write((__v).library_name(), __msg);
477 0 : Write((__v).file_id(), __msg);
478 0 : Write((__v).start_address(), __msg);
479 0 : Write((__v).mapping_length(), __msg);
480 0 : Write((__v).file_offset(), __msg);
481 0 : }
482 :
483 : bool
484 0 : PCrashReporterChild::Read(
485 : Mapping* __v,
486 : const Message* __msg,
487 : void** __iter)
488 : {
489 0 : if ((!(Read((&((__v)->library_name())), __msg, __iter)))) {
490 0 : return false;
491 : }
492 0 : if ((!(Read((&((__v)->file_id())), __msg, __iter)))) {
493 0 : return false;
494 : }
495 0 : if ((!(Read((&((__v)->start_address())), __msg, __iter)))) {
496 0 : return false;
497 : }
498 0 : if ((!(Read((&((__v)->mapping_length())), __msg, __iter)))) {
499 0 : return false;
500 : }
501 0 : if ((!(Read((&((__v)->file_offset())), __msg, __iter)))) {
502 0 : return false;
503 : }
504 0 : return true;
505 : }
506 :
507 :
508 :
509 : } // namespace dom
510 : } // namespace mozilla
|