LCOV - code coverage report
Current view: directory - objdir/ipc/ipdl - PCrashReporterParent.cpp (source / functions) Found Hit Coverage
Test: app.info Lines: 214 0 0.0 %
Date: 2012-06-02 Functions: 39 0 0.0 %

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

Generated by: LCOV version 1.7