Bug 1461122 - Implement DidComposite(LayersId,...) for CompositorBridgeParent. r?sotaro draft
authorKartikaya Gupta <kgupta@mozilla.com>
Tue, 15 May 2018 08:49:29 -0400
changeset 795281 185266b047fb2ce8a0c4d6b76454e0bdcf2d4358
parent 795256 cf3ee14023483cbbb57129479537c713e22c1980
child 795282 de7429880c98078fd5c7aa86f2e326ae2653d7e4
push id109913
push userkgupta@mozilla.com
push dateTue, 15 May 2018 12:50:00 +0000
reviewerssotaro
bugs1461122
milestone62.0a1
Bug 1461122 - Implement DidComposite(LayersId,...) for CompositorBridgeParent. r?sotaro MozReview-Commit-ID: 5glDqCdvkQG
gfx/layers/ipc/CompositorBridgeParent.cpp
gfx/layers/ipc/CompositorBridgeParent.h
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -2104,16 +2104,23 @@ CompositorBridgeParent::LayerTreeState::
 
 MetricsSharingController*
 CompositorBridgeParent::LayerTreeState::InProcessSharingController() const
 {
   return mParent;
 }
 
 void
+CompositorBridgeParent::DidComposite(LayersId aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd)
+{
+  MOZ_ASSERT(aId == mRootLayerTreeID);
+  DidComposite(aCompositeStart, aCompositeEnd);
+}
+
+void
 CompositorBridgeParent::DidComposite(TimeStamp& aCompositeStart,
                                      TimeStamp& aCompositeEnd)
 {
   if (mWrBridge) {
     NotifyDidComposite(mWrBridge->FlushPendingTransactionIds(), aCompositeStart, aCompositeEnd);
   } else {
     NotifyDidComposite(mPendingTransaction, aCompositeStart, aCompositeEnd);
 #if defined(ENABLE_FRAME_LATENCY_LOG)
--- a/gfx/layers/ipc/CompositorBridgeParent.h
+++ b/gfx/layers/ipc/CompositorBridgeParent.h
@@ -133,17 +133,17 @@ public:
   CompositorBridgeParentBase* AsCompositorBridgeParentBase() override { return this; }
 
   mozilla::ipc::IPCResult RecvSyncWithCompositor() override { return IPC_OK(); }
 
   mozilla::ipc::IPCResult Recv__delete__() override { return IPC_OK(); }
 
   virtual void ObserveLayerUpdate(LayersId aLayersId, uint64_t aEpoch, bool aActive) = 0;
 
-  virtual void DidComposite(LayersId aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) {}
+  virtual void DidComposite(LayersId aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) = 0;
 
   virtual void NotifyPipelineRendered(const wr::PipelineId& aPipelineId,
                                       const wr::Epoch& aEpoch,
                                       TimeStamp& aCompositeStart,
                                       TimeStamp& aCompositeEnd) { MOZ_ASSERT_UNREACHABLE("WebRender only"); }
   virtual void NotifyPipelineRemoved(const wr::PipelineId& aPipelineId) { MOZ_ASSERT_UNREACHABLE("WebRender only"); }
 
   // HostIPCAllocator
@@ -573,17 +573,17 @@ protected:
   static void FinishShutdown();
 
   /**
    * Return true if current state allows compositing, that is
    * finishing a layers transaction.
    */
   bool CanComposite();
 
-  using CompositorBridgeParentBase::DidComposite;
+  void DidComposite(LayersId aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) override;
   void DidComposite(TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd);
 
   void NotifyPipelineRendered(const wr::PipelineId& aPipelineId,
                               const wr::Epoch& aEpoch,
                               TimeStamp& aCompositeStart,
                               TimeStamp& aCompositeEnd) override;
   void NotifyPipelineRemoved(const wr::PipelineId& aPipelineId) override;