Bug 1369840 - Modify CompositorBridgeParentBase::GetAPZTestData to take a layers id instead of a transaction parent. r?botond
This allows us to use it from WebRenderBridgeParent which doesn't have a
LayerTransactionParent instance.
MozReview-Commit-ID: KokYS6gcXhs
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -1329,19 +1329,20 @@ CompositorBridgeParent::FlushApzRepaints
}
RefPtr<CompositorBridgeParent> self = this;
APZThreadUtils::RunOnControllerThread(NS_NewRunnableFunction([=] () {
self->mApzcTreeManager->FlushApzRepaints(layersId);
}));
}
void
-CompositorBridgeParent::GetAPZTestData(const LayerTransactionParent* aLayerTree,
+CompositorBridgeParent::GetAPZTestData(const uint64_t& aLayersId,
APZTestData* aOutData)
{
+ MOZ_ASSERT(aLayersId == mRootLayerTreeID);
MonitorAutoLock lock(*sIndirectLayerTreesLock);
*aOutData = sIndirectLayerTrees[mRootLayerTreeID].mApzTestData;
}
void
CompositorBridgeParent::SetConfirmedTargetAPZC(const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
const nsTArray<ScrollableLayerGuid>& aTargets)
--- a/gfx/layers/ipc/CompositorBridgeParent.h
+++ b/gfx/layers/ipc/CompositorBridgeParent.h
@@ -104,17 +104,17 @@ public:
virtual void ForceComposite(LayerTransactionParent* aLayerTree) { }
virtual bool SetTestSampleTime(LayerTransactionParent* aLayerTree,
const TimeStamp& aTime) { return true; }
virtual void LeaveTestMode(LayerTransactionParent* aLayerTree) { }
virtual void ApplyAsyncProperties(LayerTransactionParent* aLayerTree) = 0;
virtual CompositorAnimationStorage* GetAnimationStorage(const uint64_t& aId) { return nullptr; }
virtual void FlushApzRepaints(const uint64_t& aLayersId) = 0;
- virtual void GetAPZTestData(const LayerTransactionParent* aLayerTree,
+ virtual void GetAPZTestData(const uint64_t& aLayersId,
APZTestData* aOutData) { }
virtual void SetConfirmedTargetAPZC(const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
const nsTArray<ScrollableLayerGuid>& aTargets) = 0;
virtual void UpdatePaintTime(LayerTransactionParent* aLayerTree, const TimeDuration& aPaintTime) {}
virtual ShmemAllocator* AsShmemAllocator() override { return this; }
@@ -227,17 +227,17 @@ public:
virtual void ForceComposite(LayerTransactionParent* aLayerTree) override;
virtual bool SetTestSampleTime(LayerTransactionParent* aLayerTree,
const TimeStamp& aTime) override;
virtual void LeaveTestMode(LayerTransactionParent* aLayerTree) override;
virtual void ApplyAsyncProperties(LayerTransactionParent* aLayerTree)
override;
virtual CompositorAnimationStorage* GetAnimationStorage(const uint64_t& aId) override;
virtual void FlushApzRepaints(const uint64_t& aLayersId) override;
- virtual void GetAPZTestData(const LayerTransactionParent* aLayerTree,
+ virtual void GetAPZTestData(const uint64_t& aLayersId,
APZTestData* aOutData) override;
virtual void SetConfirmedTargetAPZC(const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
const nsTArray<ScrollableLayerGuid>& aTargets) override;
virtual AsyncCompositionManager* GetCompositionManager(LayerTransactionParent* aLayerTree) override { return mCompositionManager; }
virtual PTextureParent* AllocPTextureParent(const SurfaceDescriptor& aSharedData,
const LayersBackend& aLayersBackend,
--- a/gfx/layers/ipc/CrossProcessCompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CrossProcessCompositorBridgeParent.cpp
@@ -432,23 +432,22 @@ CrossProcessCompositorBridgeParent::Flus
}
MOZ_ASSERT(state->mParent);
state->mParent->FlushApzRepaints(aLayersId);
}
void
CrossProcessCompositorBridgeParent::GetAPZTestData(
- const LayerTransactionParent* aLayerTree,
+ const uint64_t& aLayersId,
APZTestData* aOutData)
{
- uint64_t id = aLayerTree->GetId();
- MOZ_ASSERT(id != 0);
+ MOZ_ASSERT(aLayersId != 0);
MonitorAutoLock lock(*sIndirectLayerTreesLock);
- *aOutData = sIndirectLayerTrees[id].mApzTestData;
+ *aOutData = sIndirectLayerTrees[aLayersId].mApzTestData;
}
void
CrossProcessCompositorBridgeParent::SetConfirmedTargetAPZC(
const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
const nsTArray<ScrollableLayerGuid>& aTargets)
{
--- a/gfx/layers/ipc/CrossProcessCompositorBridgeParent.h
+++ b/gfx/layers/ipc/CrossProcessCompositorBridgeParent.h
@@ -100,17 +100,17 @@ public:
virtual bool SetTestSampleTime(LayerTransactionParent* aLayerTree,
const TimeStamp& aTime) override;
virtual void LeaveTestMode(LayerTransactionParent* aLayerTree) override;
virtual void ApplyAsyncProperties(LayerTransactionParent* aLayerTree)
override;
virtual CompositorAnimationStorage*
GetAnimationStorage(const uint64_t& aId) override;
virtual void FlushApzRepaints(const uint64_t& aLayersId) override;
- virtual void GetAPZTestData(const LayerTransactionParent* aLayerTree,
+ virtual void GetAPZTestData(const uint64_t& aLayersId,
APZTestData* aOutData) override;
virtual void SetConfirmedTargetAPZC(const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
const nsTArray<ScrollableLayerGuid>& aTargets) override;
virtual AsyncCompositionManager* GetCompositionManager(LayerTransactionParent* aParent) override;
virtual mozilla::ipc::IPCResult RecvRemotePluginsReady() override { return IPC_FAIL_NO_REASON(this); }
--- a/gfx/layers/ipc/LayerTransactionParent.cpp
+++ b/gfx/layers/ipc/LayerTransactionParent.cpp
@@ -844,17 +844,17 @@ LayerTransactionParent::RecvFlushApzRepa
{
mCompositorBridge->FlushApzRepaints(GetId());
return IPC_OK();
}
mozilla::ipc::IPCResult
LayerTransactionParent::RecvGetAPZTestData(APZTestData* aOutData)
{
- mCompositorBridge->GetAPZTestData(this, aOutData);
+ mCompositorBridge->GetAPZTestData(GetId(), aOutData);
return IPC_OK();
}
mozilla::ipc::IPCResult
LayerTransactionParent::RecvRequestProperty(const nsString& aProperty, float* aValue)
{
*aValue = -1;
return IPC_OK();