LCOV - code coverage report
Current view: top level - obj-x86_64-pc-linux-gnu/ipc/ipdl - PCompositorManagerChild.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 57 247 23.1 %
Date: 2017-07-14 16:53:18 Functions: 11 37 29.7 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //
       2             : // Automatically generated by ipdlc.
       3             : // Edit at your own risk
       4             : //
       5             : 
       6             : 
       7             : #include "mozilla/layers/PCompositorManagerChild.h"
       8             : #include "ipc/IPCMessageUtils.h"
       9             : #ifdef MOZ_CRASHREPORTER
      10             : #  include "nsXULAppAPI.h"
      11             : #endif
      12             : 
      13             : #include "mozilla/layers/PCompositorBridgeChild.h"
      14             : 
      15             : #include "nsIFile.h"
      16             : #include "GeckoProfiler.h"
      17             : 
      18             : namespace mozilla {
      19             : namespace layers {
      20             : 
      21             : 
      22           0 : auto PCompositorManagerChild::ActorDestroy(ActorDestroyReason aWhy) -> void
      23             : {
      24           0 : }
      25             : 
      26           0 : auto PCompositorManagerChild::ProcessingError(
      27             :         Result aCode,
      28             :         const char* aReason) -> void
      29             : {
      30           0 : }
      31             : 
      32           0 : auto PCompositorManagerChild::ShouldContinueFromReplyTimeout() -> bool
      33             : {
      34           0 :     return true;
      35             : }
      36             : 
      37         134 : auto PCompositorManagerChild::EnteredCxxStack() -> void
      38             : {
      39         134 : }
      40             : 
      41         134 : auto PCompositorManagerChild::ExitedCxxStack() -> void
      42             : {
      43         134 : }
      44             : 
      45           0 : auto PCompositorManagerChild::EnteredCall() -> void
      46             : {
      47           0 : }
      48             : 
      49           0 : auto PCompositorManagerChild::ExitedCall() -> void
      50             : {
      51           0 : }
      52             : 
      53           3 : MOZ_IMPLICIT PCompositorManagerChild::PCompositorManagerChild() :
      54             :     mozilla::ipc::IToplevelProtocol(PCompositorManagerMsgStart, mozilla::ipc::ChildSide),
      55             :     mChannel("PCompositorManagerChild", ALLOW_THIS_IN_INITIALIZER_LIST(this)),
      56           3 :     mState(PCompositorManager::__Start)
      57             : {
      58           3 :     MOZ_COUNT_CTOR(PCompositorManagerChild);
      59           3 : }
      60             : 
      61           0 : PCompositorManagerChild::~PCompositorManagerChild()
      62             : {
      63           0 :     MOZ_COUNT_DTOR(PCompositorManagerChild);
      64           0 : }
      65             : 
      66           0 : auto PCompositorManagerChild::ManagedPCompositorBridgeChild(nsTArray<PCompositorBridgeChild*>& aArr) const -> void
      67             : {
      68           0 :     (mManagedPCompositorBridgeChild).ToArray(aArr);
      69           0 : }
      70             : 
      71           0 : auto PCompositorManagerChild::ManagedPCompositorBridgeChild() const -> const ManagedContainer<PCompositorBridgeChild>&
      72             : {
      73           0 :     return mManagedPCompositorBridgeChild;
      74             : }
      75             : 
      76           3 : auto PCompositorManagerChild::SendPCompositorBridgeConstructor(const CompositorBridgeOptions& options) -> PCompositorBridgeChild*
      77             : {
      78           3 :     return SendPCompositorBridgeConstructor(AllocPCompositorBridgeChild(options), options);
      79             : }
      80             : 
      81           3 : auto PCompositorManagerChild::SendPCompositorBridgeConstructor(
      82             :         PCompositorBridgeChild* actor,
      83             :         const CompositorBridgeOptions& options) -> PCompositorBridgeChild*
      84             : {
      85           3 :     if ((!(actor))) {
      86           0 :         NS_WARNING("Error constructing actor PCompositorBridgeChild");
      87           0 :         return nullptr;
      88             :     }
      89           3 :     (actor)->SetManager(this);
      90           3 :     Register(actor);
      91           3 :     (actor)->SetIPCChannel(GetIPCChannel());
      92           3 :     (mManagedPCompositorBridgeChild).PutEntry(actor);
      93           3 :     (actor)->mState = mozilla::layers::PCompositorBridge::__Start;
      94             : 
      95           3 :     IPC::Message* msg__ = PCompositorManager::Msg_PCompositorBridgeConstructor(MSG_ROUTING_CONTROL);
      96             : 
      97           3 :     Write(actor, msg__, false);
      98             :     // Sentinel = 'actor'
      99           3 :     (msg__)->WriteSentinel(875202478);
     100           3 :     Write(options, msg__);
     101             :     // Sentinel = 'options'
     102           3 :     (msg__)->WriteSentinel(33222909);
     103             : 
     104           3 :     (msg__)->set_constructor();
     105             : 
     106             : 
     107           3 :     if (mozilla::ipc::LoggingEnabledFor("PCompositorManagerChild")) {
     108           0 :         mozilla::ipc::LogMessageForProtocol("PCompositorManagerChild", OtherPid(), "Sending ", (msg__)->type(), mozilla::ipc::MessageDirection::eSending);
     109             :     }
     110           6 :     AUTO_PROFILER_LABEL("PCompositorManager::Msg_PCompositorBridgeConstructor", OTHER);
     111           3 :     PCompositorManager::Transition(PCompositorManager::Msg_PCompositorBridgeConstructor__ID, (&(mState)));
     112             : 
     113           3 :     bool sendok__ = (GetIPCChannel())->Send(msg__);
     114           3 :     if ((!(sendok__))) {
     115           0 :         FatalError("constructor for actor failed");
     116           0 :         return nullptr;
     117             :     }
     118           3 :     return actor;
     119             : }
     120             : 
     121          10 : auto PCompositorManagerChild::GetIPCChannel() -> MessageChannel*
     122             : {
     123          10 :     return (&(mChannel));
     124             : }
     125             : 
     126           0 : auto PCompositorManagerChild::GetIPCChannel() const -> const MessageChannel*
     127             : {
     128           0 :     return (&(mChannel));
     129             : }
     130             : 
     131           0 : auto PCompositorManagerChild::RemoveManagee(
     132             :         int32_t aProtocolId,
     133             :         ProtocolBase* aListener) -> void
     134             : {
     135           0 :     switch (aProtocolId) {
     136             :     case PCompositorBridgeMsgStart:
     137             :         {
     138           0 :             PCompositorBridgeChild* actor = static_cast<PCompositorBridgeChild*>(aListener);
     139           0 :             auto& container = mManagedPCompositorBridgeChild;
     140           0 :             MOZ_RELEASE_ASSERT((container).Contains(actor), "actor not managed by this!");
     141             : 
     142           0 :             (container).RemoveEntry(actor);
     143           0 :             DeallocPCompositorBridgeChild(actor);
     144           0 :             return;
     145             :         }
     146             :     default:
     147             :         {
     148           0 :             FatalError("unreached");
     149           0 :             return;
     150             :         }
     151             :     }
     152             : }
     153             : 
     154          61 : auto PCompositorManagerChild::OnMessageReceived(const Message& msg__) -> PCompositorManagerChild::Result
     155             : {
     156          61 :     int32_t route__ = (msg__).routing_id();
     157          61 :     if ((MSG_ROUTING_CONTROL) != (route__)) {
     158          61 :         ChannelListener* routed__ = Lookup(route__);
     159          61 :         if ((!(routed__))) {
     160           0 :             return MsgRouteError;
     161             :         }
     162          61 :         return (routed__)->OnMessageReceived(msg__);
     163             :     }
     164             : 
     165           0 :     switch ((msg__).type()) {
     166             :     case PCompositorManager::Reply_PCompositorBridgeConstructor__ID:
     167             :         {
     168           0 :             return MsgProcessed;
     169             :         }
     170             :     default:
     171             :         {
     172           0 :             return MsgNotKnown;
     173             :         }
     174             :     case SHMEM_CREATED_MESSAGE_TYPE:
     175             :         {
     176           0 :             if ((!(ShmemCreated(msg__)))) {
     177           0 :                 return MsgPayloadError;
     178             :             }
     179           0 :             return MsgProcessed;
     180             :         }
     181             :     case SHMEM_DESTROYED_MESSAGE_TYPE:
     182             :         {
     183           0 :             if ((!(ShmemDestroyed(msg__)))) {
     184           0 :                 return MsgPayloadError;
     185             :             }
     186           0 :             return MsgProcessed;
     187             :         }
     188             :     }
     189             : }
     190             : 
     191           0 : auto PCompositorManagerChild::OnMessageReceived(
     192             :         const Message& msg__,
     193             :         Message*& reply__) -> PCompositorManagerChild::Result
     194             : {
     195           0 :     int32_t route__ = (msg__).routing_id();
     196           0 :     if ((MSG_ROUTING_CONTROL) != (route__)) {
     197           0 :         ChannelListener* routed__ = Lookup(route__);
     198           0 :         if ((!(routed__))) {
     199           0 :             return MsgRouteError;
     200             :         }
     201           0 :         return (routed__)->OnMessageReceived(msg__, reply__);
     202             :     }
     203             : 
     204           0 :     return MsgNotKnown;
     205             : }
     206             : 
     207           0 : auto PCompositorManagerChild::OnCallReceived(
     208             :         const Message& msg__,
     209             :         Message*& reply__) -> PCompositorManagerChild::Result
     210             : {
     211           0 :     MOZ_ASSERT_UNREACHABLE("message protocol not supported");
     212             :     return MsgNotKnown;
     213             : }
     214             : 
     215           0 : auto PCompositorManagerChild::GetProtocolTypeId() -> int32_t
     216             : {
     217           0 :     return PCompositorManagerMsgStart;
     218             : }
     219             : 
     220           0 : auto PCompositorManagerChild::OnChannelClose() -> void
     221             : {
     222           0 :     DestroySubtree(NormalShutdown);
     223           0 :     DeallocSubtree();
     224           0 :     DeallocShmems();
     225           0 :     DeallocPCompositorManagerChild();
     226           0 : }
     227             : 
     228           0 : auto PCompositorManagerChild::OnChannelError() -> void
     229             : {
     230           0 :     DestroySubtree(AbnormalShutdown);
     231           0 :     DeallocSubtree();
     232           0 :     DeallocShmems();
     233           0 :     DeallocPCompositorManagerChild();
     234           0 : }
     235             : 
     236           0 : auto PCompositorManagerChild::ProtocolName() const -> const char*
     237             : {
     238           0 :     return "PCompositorManagerChild";
     239             : }
     240             : 
     241           0 : auto PCompositorManagerChild::DestroySubtree(ActorDestroyReason why) -> void
     242             : {
     243           0 :     ActorDestroyReason subtreewhy = (((why) == (Deletion)) || ((why) == (FailedConstructor)) ? AncestorDeletion : why);
     244             : 
     245             :     {
     246             :         // Recursively shutting down PCompositorBridge kids
     247           0 :         nsTArray<PCompositorBridgeChild*> kids;
     248             :         // Accumulate kids into a stable structure to iterate over
     249           0 :         ManagedPCompositorBridgeChild(kids);
     250           0 :         for (auto& kid : kids) {
     251             :             // Guarding against a child removing a sibling from the list during the iteration.
     252           0 :             if ((mManagedPCompositorBridgeChild).Contains(kid)) {
     253           0 :                 (kid)->DestroySubtree(subtreewhy);
     254             :             }
     255             :         }
     256             :     }
     257             : 
     258             :     // Reject owning pending promises.
     259           0 :     (GetIPCChannel())->RejectPendingPromisesForActor(this);
     260             : 
     261             :     // Finally, destroy "us".
     262           0 :     ActorDestroy(why);
     263           0 : }
     264             : 
     265           0 : auto PCompositorManagerChild::DeallocSubtree() -> void
     266             : {
     267             :     {
     268             :         // Recursively deleting PCompositorBridge kids
     269           0 :         for (auto iter = (mManagedPCompositorBridgeChild).Iter(); (!((iter).Done())); (iter).Next()) {
     270           0 :             (((iter).Get())->GetKey())->DeallocSubtree();
     271             :         }
     272             : 
     273           0 :         for (auto iter = (mManagedPCompositorBridgeChild).Iter(); (!((iter).Done())); (iter).Next()) {
     274           0 :             DeallocPCompositorBridgeChild(((iter).Get())->GetKey());
     275             :         }
     276           0 :         (mManagedPCompositorBridgeChild).Clear();
     277             :     }
     278           0 : }
     279             : 
     280           0 : auto PCompositorManagerChild::DeallocPCompositorManagerChild() -> void
     281             : {
     282           0 : }
     283             : 
     284           3 : auto PCompositorManagerChild::Write(
     285             :         const CompositorBridgeOptions& v__,
     286             :         Message* msg__) -> void
     287             : {
     288             :     typedef CompositorBridgeOptions type__;
     289           3 :     Write(int((v__).type()), msg__);
     290             :     // Sentinel = 'CompositorBridgeOptions'
     291           3 :     (msg__)->WriteSentinel(1223334017);
     292             : 
     293           3 :     switch ((v__).type()) {
     294             :     case type__::TContentCompositorOptions:
     295             :         {
     296           2 :             Write((v__).get_ContentCompositorOptions(), msg__);
     297             :             // Sentinel = 'TContentCompositorOptions'
     298           2 :             (msg__)->WriteSentinel(660265439);
     299           2 :             return;
     300             :         }
     301             :     case type__::TWidgetCompositorOptions:
     302             :         {
     303           0 :             Write((v__).get_WidgetCompositorOptions(), msg__);
     304             :             // Sentinel = 'TWidgetCompositorOptions'
     305           0 :             (msg__)->WriteSentinel(1740490067);
     306           0 :             return;
     307             :         }
     308             :     case type__::TSameProcessWidgetCompositorOptions:
     309             :         {
     310           1 :             Write((v__).get_SameProcessWidgetCompositorOptions(), msg__);
     311             :             // Sentinel = 'TSameProcessWidgetCompositorOptions'
     312           1 :             (msg__)->WriteSentinel(3995034615);
     313           1 :             return;
     314             :         }
     315             :     default:
     316             :         {
     317           0 :             FatalError("unknown union type");
     318           0 :             return;
     319             :         }
     320             :     }
     321             : }
     322             : 
     323           0 : auto PCompositorManagerChild::Read(
     324             :         CompositorBridgeOptions* v__,
     325             :         const Message* msg__,
     326             :         PickleIterator* iter__) -> bool
     327             : {
     328             :     typedef CompositorBridgeOptions type__;
     329             :     int type;
     330           0 :     if ((!(Read((&(type)), msg__, iter__)))) {
     331           0 :         mozilla::ipc::UnionTypeReadError("CompositorBridgeOptions");
     332           0 :         return false;
     333             :     }
     334             :     // Sentinel = 'CompositorBridgeOptions'
     335           0 :     if ((!((msg__)->ReadSentinel(iter__, 1223334017)))) {
     336           0 :         mozilla::ipc::SentinelReadError("CompositorBridgeOptions");
     337           0 :         return false;
     338             :     }
     339             : 
     340           0 :     switch (type) {
     341             :     case type__::TContentCompositorOptions:
     342             :         {
     343           0 :             ContentCompositorOptions tmp = ContentCompositorOptions();
     344           0 :             (*(v__)) = tmp;
     345           0 :             if ((!(Read((&((v__)->get_ContentCompositorOptions())), msg__, iter__)))) {
     346           0 :                 FatalError("Error deserializing Union type");
     347           0 :                 return false;
     348             :             }
     349             :             // Sentinel = 'TContentCompositorOptions'
     350           0 :             if ((!((msg__)->ReadSentinel(iter__, 660265439)))) {
     351           0 :                 mozilla::ipc::SentinelReadError("Error deserializing Union type");
     352           0 :                 return false;
     353             :             }
     354           0 :             return true;
     355             :         }
     356             :     case type__::TWidgetCompositorOptions:
     357             :         {
     358           0 :             WidgetCompositorOptions tmp = WidgetCompositorOptions();
     359           0 :             (*(v__)) = tmp;
     360           0 :             if ((!(Read((&((v__)->get_WidgetCompositorOptions())), msg__, iter__)))) {
     361           0 :                 FatalError("Error deserializing Union type");
     362           0 :                 return false;
     363             :             }
     364             :             // Sentinel = 'TWidgetCompositorOptions'
     365           0 :             if ((!((msg__)->ReadSentinel(iter__, 1740490067)))) {
     366           0 :                 mozilla::ipc::SentinelReadError("Error deserializing Union type");
     367           0 :                 return false;
     368             :             }
     369           0 :             return true;
     370             :         }
     371             :     case type__::TSameProcessWidgetCompositorOptions:
     372             :         {
     373           0 :             SameProcessWidgetCompositorOptions tmp = SameProcessWidgetCompositorOptions();
     374           0 :             (*(v__)) = tmp;
     375           0 :             if ((!(Read((&((v__)->get_SameProcessWidgetCompositorOptions())), msg__, iter__)))) {
     376           0 :                 FatalError("Error deserializing Union type");
     377           0 :                 return false;
     378             :             }
     379             :             // Sentinel = 'TSameProcessWidgetCompositorOptions'
     380           0 :             if ((!((msg__)->ReadSentinel(iter__, 3995034615)))) {
     381           0 :                 mozilla::ipc::SentinelReadError("Error deserializing Union type");
     382           0 :                 return false;
     383             :             }
     384           0 :             return true;
     385             :         }
     386             :     default:
     387             :         {
     388           0 :             FatalError("unknown union type");
     389           0 :             return false;
     390             :         }
     391             :     }
     392             : }
     393             : 
     394           1 : auto PCompositorManagerChild::Write(
     395             :         const SameProcessWidgetCompositorOptions& v__,
     396             :         Message* msg__) -> void
     397             : {
     398           1 : }
     399             : 
     400           0 : auto PCompositorManagerChild::Read(
     401             :         SameProcessWidgetCompositorOptions* v__,
     402             :         const Message* msg__,
     403             :         PickleIterator* iter__) -> bool
     404             : {
     405           0 :     return true;
     406             : }
     407             : 
     408           3 : auto PCompositorManagerChild::Write(
     409             :         const PCompositorBridgeChild* v__,
     410             :         Message* msg__,
     411             :         bool nullable__) -> void
     412             : {
     413             :     int32_t id;
     414           3 :     if ((!(v__))) {
     415           0 :         if ((!(nullable__))) {
     416           0 :             FatalError("NULL actor value passed to non-nullable param");
     417             :         }
     418           0 :         id = 0;
     419             :     }
     420             :     else {
     421           3 :         id = (v__)->Id();
     422           3 :         if ((1) == (id)) {
     423           0 :             FatalError("actor has been |delete|d");
     424             :         }
     425             :     }
     426             : 
     427           3 :     Write(id, msg__);
     428           3 : }
     429             : 
     430           0 : auto PCompositorManagerChild::Read(
     431             :         PCompositorBridgeChild** v__,
     432             :         const Message* msg__,
     433             :         PickleIterator* iter__,
     434             :         bool nullable__) -> bool
     435             : {
     436           0 :     Maybe<mozilla::ipc::IProtocol*> actor = ReadActor(msg__, iter__, nullable__, "PCompositorBridge", PCompositorBridgeMsgStart);
     437           0 :     if ((actor).isNothing()) {
     438           0 :         return false;
     439             :     }
     440             : 
     441           0 :     (*(v__)) = static_cast<PCompositorBridgeChild*>((actor).value());
     442           0 :     return true;
     443             : }
     444             : 
     445           2 : auto PCompositorManagerChild::Write(
     446             :         const ContentCompositorOptions& v__,
     447             :         Message* msg__) -> void
     448             : {
     449           2 : }
     450             : 
     451           0 : auto PCompositorManagerChild::Read(
     452             :         ContentCompositorOptions* v__,
     453             :         const Message* msg__,
     454             :         PickleIterator* iter__) -> bool
     455             : {
     456           0 :     return true;
     457             : }
     458             : 
     459           0 : auto PCompositorManagerChild::Write(
     460             :         const WidgetCompositorOptions& v__,
     461             :         Message* msg__) -> void
     462             : {
     463           0 :     Write((v__).scale(), msg__);
     464             :     // Sentinel = 'scale'
     465           0 :     (msg__)->WriteSentinel(590599843);
     466           0 :     Write((v__).vsyncRate(), msg__);
     467             :     // Sentinel = 'vsyncRate'
     468           0 :     (msg__)->WriteSentinel(1568351920);
     469           0 :     Write((v__).options(), msg__);
     470             :     // Sentinel = 'options'
     471           0 :     (msg__)->WriteSentinel(33222909);
     472           0 :     Write((v__).useExternalSurfaceSize(), msg__);
     473             :     // Sentinel = 'useExternalSurfaceSize'
     474           0 :     (msg__)->WriteSentinel(778777080);
     475           0 :     Write((v__).surfaceSize(), msg__);
     476             :     // Sentinel = 'surfaceSize'
     477           0 :     (msg__)->WriteSentinel(87441173);
     478           0 : }
     479             : 
     480           0 : auto PCompositorManagerChild::Read(
     481             :         WidgetCompositorOptions* v__,
     482             :         const Message* msg__,
     483             :         PickleIterator* iter__) -> bool
     484             : {
     485           0 :     if ((!(Read((&((v__)->scale())), msg__, iter__)))) {
     486           0 :         FatalError("Error deserializing 'scale' (CSSToLayoutDeviceScale) member of 'WidgetCompositorOptions'");
     487           0 :         return false;
     488             :     }
     489             :     // Sentinel = 'scale'
     490           0 :     if ((!((msg__)->ReadSentinel(iter__, 590599843)))) {
     491           0 :         mozilla::ipc::SentinelReadError("Error deserializing 'scale' (CSSToLayoutDeviceScale) member of 'WidgetCompositorOptions'");
     492           0 :         return false;
     493             :     }
     494           0 :     if ((!(Read((&((v__)->vsyncRate())), msg__, iter__)))) {
     495           0 :         FatalError("Error deserializing 'vsyncRate' (TimeDuration) member of 'WidgetCompositorOptions'");
     496           0 :         return false;
     497             :     }
     498             :     // Sentinel = 'vsyncRate'
     499           0 :     if ((!((msg__)->ReadSentinel(iter__, 1568351920)))) {
     500           0 :         mozilla::ipc::SentinelReadError("Error deserializing 'vsyncRate' (TimeDuration) member of 'WidgetCompositorOptions'");
     501           0 :         return false;
     502             :     }
     503           0 :     if ((!(Read((&((v__)->options())), msg__, iter__)))) {
     504           0 :         FatalError("Error deserializing 'options' (CompositorOptions) member of 'WidgetCompositorOptions'");
     505           0 :         return false;
     506             :     }
     507             :     // Sentinel = 'options'
     508           0 :     if ((!((msg__)->ReadSentinel(iter__, 33222909)))) {
     509           0 :         mozilla::ipc::SentinelReadError("Error deserializing 'options' (CompositorOptions) member of 'WidgetCompositorOptions'");
     510           0 :         return false;
     511             :     }
     512           0 :     if ((!(Read((&((v__)->useExternalSurfaceSize())), msg__, iter__)))) {
     513           0 :         FatalError("Error deserializing 'useExternalSurfaceSize' (bool) member of 'WidgetCompositorOptions'");
     514           0 :         return false;
     515             :     }
     516             :     // Sentinel = 'useExternalSurfaceSize'
     517           0 :     if ((!((msg__)->ReadSentinel(iter__, 778777080)))) {
     518           0 :         mozilla::ipc::SentinelReadError("Error deserializing 'useExternalSurfaceSize' (bool) member of 'WidgetCompositorOptions'");
     519           0 :         return false;
     520             :     }
     521           0 :     if ((!(Read((&((v__)->surfaceSize())), msg__, iter__)))) {
     522           0 :         FatalError("Error deserializing 'surfaceSize' (IntSize) member of 'WidgetCompositorOptions'");
     523           0 :         return false;
     524             :     }
     525             :     // Sentinel = 'surfaceSize'
     526           0 :     if ((!((msg__)->ReadSentinel(iter__, 87441173)))) {
     527           0 :         mozilla::ipc::SentinelReadError("Error deserializing 'surfaceSize' (IntSize) member of 'WidgetCompositorOptions'");
     528           0 :         return false;
     529             :     }
     530           0 :     return true;
     531             : }
     532             : 
     533             : 
     534             : 
     535             : } // namespace layers
     536             : } // namespace mozilla

Generated by: LCOV version 1.13