Bug 1461122 - Implement DidComposite(LayersId,...) for CompositorBridgeParent. r?sotaro
MozReview-Commit-ID: 5glDqCdvkQG
--- 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;