Bug 1375497 - Modify the SetTestSampleTime and LeaveTestMode functions to take a layers id instead of a LayerTransactionParent. r?pchang
This will make these functions usable from WebRenderBridgeParent, which has a
layers id but doesn't have a LayerTransactionParent.
MozReview-Commit-ID: FvxGPdLeUWe
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -1261,17 +1261,17 @@ CompositorBridgeParent::ShadowLayersUpda
void
CompositorBridgeParent::ForceComposite(LayerTransactionParent* aLayerTree)
{
ScheduleComposition();
}
bool
-CompositorBridgeParent::SetTestSampleTime(LayerTransactionParent* aLayerTree,
+CompositorBridgeParent::SetTestSampleTime(const uint64_t& aId,
const TimeStamp& aTime)
{
if (aTime.IsNull()) {
return false;
}
mIsTesting = true;
mTestTime = aTime;
@@ -1290,17 +1290,17 @@ CompositorBridgeParent::SetTestSampleTim
DidComposite(now, now);
}
}
return true;
}
void
-CompositorBridgeParent::LeaveTestMode(LayerTransactionParent* aLayerTree)
+CompositorBridgeParent::LeaveTestMode(const uint64_t& aId)
{
mIsTesting = false;
}
void
CompositorBridgeParent::ApplyAsyncProperties(LayerTransactionParent* aLayerTree)
{
// NOTE: This should only be used for testing. For example, when mIsTesting is
--- a/gfx/layers/ipc/CompositorBridgeParent.h
+++ b/gfx/layers/ipc/CompositorBridgeParent.h
@@ -101,19 +101,19 @@ public:
const TransactionInfo& aInfo,
bool aHitTestUpdate) = 0;
virtual AsyncCompositionManager* GetCompositionManager(LayerTransactionParent* aLayerTree) { return nullptr; }
virtual void NotifyClearCachedResources(LayerTransactionParent* aLayerTree) { }
virtual void ForceComposite(LayerTransactionParent* aLayerTree) { }
- virtual bool SetTestSampleTime(LayerTransactionParent* aLayerTree,
+ virtual bool SetTestSampleTime(const uint64_t& aId,
const TimeStamp& aTime) { return true; }
- virtual void LeaveTestMode(LayerTransactionParent* aLayerTree) { }
+ virtual void LeaveTestMode(const uint64_t& aId) { }
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 uint64_t& aLayersId,
APZTestData* aOutData) { }
virtual void SetConfirmedTargetAPZC(const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
const nsTArray<ScrollableLayerGuid>& aTargets) = 0;
@@ -225,19 +225,19 @@ public:
virtual mozilla::ipc::IPCResult RecvAllPluginsCaptured() override;
virtual void ActorDestroy(ActorDestroyReason why) override;
virtual void ShadowLayersUpdated(LayerTransactionParent* aLayerTree,
const TransactionInfo& aInfo,
bool aHitTestUpdate) override;
virtual void ForceComposite(LayerTransactionParent* aLayerTree) override;
- virtual bool SetTestSampleTime(LayerTransactionParent* aLayerTree,
+ virtual bool SetTestSampleTime(const uint64_t& aId,
const TimeStamp& aTime) override;
- virtual void LeaveTestMode(LayerTransactionParent* aLayerTree) override;
+ virtual void LeaveTestMode(const uint64_t& aId) 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 uint64_t& aLayersId,
APZTestData* aOutData) override;
virtual void SetConfirmedTargetAPZC(const uint64_t& aLayersId,
const uint64_t& aInputBlockId,
--- a/gfx/layers/ipc/CrossProcessCompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CrossProcessCompositorBridgeParent.cpp
@@ -360,44 +360,42 @@ CrossProcessCompositorBridgeParent::Noti
if (state && state->mParent) {
// Note that we send this through the window compositor, since this needs
// to reach the widget owning the tab.
Unused << state->mParent->SendObserveLayerUpdate(id, aLayerTree->GetChildEpoch(), false);
}
}
bool
-CrossProcessCompositorBridgeParent::SetTestSampleTime(
- LayerTransactionParent* aLayerTree, const TimeStamp& aTime)
+CrossProcessCompositorBridgeParent::SetTestSampleTime(const uint64_t& aId,
+ const TimeStamp& aTime)
{
- uint64_t id = aLayerTree->GetId();
- MOZ_ASSERT(id != 0);
+ MOZ_ASSERT(aId != 0);
const CompositorBridgeParent::LayerTreeState* state =
- CompositorBridgeParent::GetIndirectShadowTree(id);
+ CompositorBridgeParent::GetIndirectShadowTree(aId);
if (!state) {
return false;
}
MOZ_ASSERT(state->mParent);
- return state->mParent->SetTestSampleTime(aLayerTree, aTime);
+ return state->mParent->SetTestSampleTime(aId, aTime);
}
void
-CrossProcessCompositorBridgeParent::LeaveTestMode(LayerTransactionParent* aLayerTree)
+CrossProcessCompositorBridgeParent::LeaveTestMode(const uint64_t& aId)
{
- uint64_t id = aLayerTree->GetId();
- MOZ_ASSERT(id != 0);
+ MOZ_ASSERT(aId != 0);
const CompositorBridgeParent::LayerTreeState* state =
- CompositorBridgeParent::GetIndirectShadowTree(id);
+ CompositorBridgeParent::GetIndirectShadowTree(aId);
if (!state) {
return;
}
MOZ_ASSERT(state->mParent);
- state->mParent->LeaveTestMode(aLayerTree);
+ state->mParent->LeaveTestMode(aId);
}
void
CrossProcessCompositorBridgeParent::ApplyAsyncProperties(
LayerTransactionParent* aLayerTree)
{
uint64_t id = aLayerTree->GetId();
MOZ_ASSERT(id != 0);
--- a/gfx/layers/ipc/CrossProcessCompositorBridgeParent.h
+++ b/gfx/layers/ipc/CrossProcessCompositorBridgeParent.h
@@ -85,19 +85,19 @@ public:
virtual bool DeallocPLayerTransactionParent(PLayerTransactionParent* aLayers) override;
virtual void ShadowLayersUpdated(LayerTransactionParent* aLayerTree,
const TransactionInfo& aInfo,
bool aHitTestUpdate) override;
virtual void ForceComposite(LayerTransactionParent* aLayerTree) override;
virtual void NotifyClearCachedResources(LayerTransactionParent* aLayerTree) override;
- virtual bool SetTestSampleTime(LayerTransactionParent* aLayerTree,
+ virtual bool SetTestSampleTime(const uint64_t& aId,
const TimeStamp& aTime) override;
- virtual void LeaveTestMode(LayerTransactionParent* aLayerTree) override;
+ virtual void LeaveTestMode(const uint64_t& aId) 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 uint64_t& aLayersId,
APZTestData* aOutData) override;
virtual void SetConfirmedTargetAPZC(const uint64_t& aLayersId,
--- a/gfx/layers/ipc/LayerTransactionParent.cpp
+++ b/gfx/layers/ipc/LayerTransactionParent.cpp
@@ -684,26 +684,26 @@ LayerTransactionParent::ShouldParentObse
mParentEpoch = mChildEpoch;
return true;
}
mozilla::ipc::IPCResult
LayerTransactionParent::RecvSetTestSampleTime(const TimeStamp& aTime)
{
- if (!mCompositorBridge->SetTestSampleTime(this, aTime)) {
+ if (!mCompositorBridge->SetTestSampleTime(GetId(), aTime)) {
return IPC_FAIL_NO_REASON(this);
}
return IPC_OK();
}
mozilla::ipc::IPCResult
LayerTransactionParent::RecvLeaveTestMode()
{
- mCompositorBridge->LeaveTestMode(this);
+ mCompositorBridge->LeaveTestMode(GetId());
return IPC_OK();
}
mozilla::ipc::IPCResult
LayerTransactionParent::RecvGetAnimationOpacity(const uint64_t& aCompositorAnimationsId,
float* aOpacity,
bool* aHasAnimationOpacity)
{