mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 22:05:44 +00:00
Bug 1375497 - Implement some more PLayerTransaction testing APIs in PWebRenderBridge. r=pchang
MozReview-Commit-ID: Em4VROmcUx0 --HG-- extra : rebase_source : c763f6f91f482f7b1ddc03280aff51ead6fd894e
This commit is contained in:
parent
b95fb227dd
commit
dc174219de
@ -53,6 +53,7 @@ using mozilla::layers::CompositableHandle from "mozilla/layers/LayersTypes.h";
|
||||
using mozilla::layers::ReadLockHandle from "mozilla/layers/LayersTypes.h";
|
||||
using mozilla::layers::SimpleLayerAttributes from "mozilla/layers/LayerAttributes.h";
|
||||
using mozilla::CrossProcessSemaphoreHandle from "mozilla/ipc/CrossProcessSemaphore.h";
|
||||
using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
|
||||
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
@ -575,5 +576,10 @@ struct TransactionInfo
|
||||
TimeStamp transactionStart;
|
||||
};
|
||||
|
||||
union MaybeTransform {
|
||||
Matrix4x4;
|
||||
void_t;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
@ -35,11 +35,6 @@ using mozilla::layers::CompositableHandle from "mozilla/layers/LayersTypes.h";
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
|
||||
union MaybeTransform {
|
||||
Matrix4x4;
|
||||
void_t;
|
||||
};
|
||||
|
||||
/**
|
||||
* The PLayerTransaction protocol manages the layer tree for a single "browser".
|
||||
* The "browser" can be a top-level browser window, in which case the PLayer-
|
||||
|
@ -75,6 +75,11 @@ parent:
|
||||
// see those for documentation.
|
||||
async SetConfirmedTargetAPZC(uint64_t aInputBlockId, ScrollableLayerGuid[] aTargets);
|
||||
// More copied from PLayerTransaction, but these are only used for testing.
|
||||
sync SetTestSampleTime(TimeStamp sampleTime);
|
||||
sync LeaveTestMode();
|
||||
sync GetAnimationOpacity(uint64_t aCompositorAnimationsId) returns (float opacity,
|
||||
bool hasAnimationOpacity);
|
||||
sync GetAnimationTransform(uint64_t aCompositorAnimationId) returns (MaybeTransform transform);
|
||||
sync SetAsyncScrollOffset(ViewID scrollId, float x, float y);
|
||||
sync SetAsyncZoom(ViewID scrollId, float zoom);
|
||||
async FlushApzRepaints();
|
||||
|
@ -785,6 +785,64 @@ WebRenderBridgeParent::RecvSetConfirmedTargetAPZC(const uint64_t& aBlockId,
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
WebRenderBridgeParent::RecvSetTestSampleTime(const TimeStamp& aTime)
|
||||
{
|
||||
if (!mCompositorBridge->SetTestSampleTime(GetLayersId(), aTime)) {
|
||||
return IPC_FAIL_NO_REASON(this);
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
WebRenderBridgeParent::RecvLeaveTestMode()
|
||||
{
|
||||
mCompositorBridge->LeaveTestMode(GetLayersId());
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
WebRenderBridgeParent::RecvGetAnimationOpacity(const uint64_t& aCompositorAnimationsId,
|
||||
float* aOpacity,
|
||||
bool* aHasAnimationOpacity)
|
||||
{
|
||||
if (mDestroyed) {
|
||||
return IPC_FAIL_NO_REASON(this);
|
||||
}
|
||||
|
||||
MOZ_ASSERT(mAnimStorage);
|
||||
AdvanceAnimations();
|
||||
|
||||
Maybe<float> opacity = mAnimStorage->GetAnimationOpacity(aCompositorAnimationsId);
|
||||
if (opacity) {
|
||||
*aOpacity = *opacity;
|
||||
*aHasAnimationOpacity = true;
|
||||
} else {
|
||||
*aHasAnimationOpacity = false;
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
WebRenderBridgeParent::RecvGetAnimationTransform(const uint64_t& aCompositorAnimationsId,
|
||||
MaybeTransform* aTransform)
|
||||
{
|
||||
if (mDestroyed) {
|
||||
return IPC_FAIL_NO_REASON(this);
|
||||
}
|
||||
|
||||
MOZ_ASSERT(mAnimStorage);
|
||||
AdvanceAnimations();
|
||||
|
||||
Maybe<Matrix4x4> transform = mAnimStorage->GetAnimationTransform(aCompositorAnimationsId);
|
||||
if (transform) {
|
||||
*aTransform = *transform;
|
||||
} else {
|
||||
*aTransform = mozilla::void_t();
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult
|
||||
WebRenderBridgeParent::RecvSetAsyncScrollOffset(const FrameMetrics::ViewID& aScrollId,
|
||||
const float& aX,
|
||||
|
@ -125,6 +125,14 @@ public:
|
||||
|
||||
mozilla::ipc::IPCResult RecvSetConfirmedTargetAPZC(const uint64_t& aBlockId,
|
||||
nsTArray<ScrollableLayerGuid>&& aTargets) override;
|
||||
|
||||
mozilla::ipc::IPCResult RecvSetTestSampleTime(const TimeStamp& aTime) override;
|
||||
mozilla::ipc::IPCResult RecvLeaveTestMode() override;
|
||||
mozilla::ipc::IPCResult RecvGetAnimationOpacity(const uint64_t& aCompositorAnimationsId,
|
||||
float* aOpacity,
|
||||
bool* aHasAnimationOpacity) override;
|
||||
mozilla::ipc::IPCResult RecvGetAnimationTransform(const uint64_t& aCompositorAnimationsId,
|
||||
MaybeTransform* aTransform) override;
|
||||
mozilla::ipc::IPCResult RecvSetAsyncScrollOffset(const FrameMetrics::ViewID& aScrollId,
|
||||
const float& aX,
|
||||
const float& aY) override;
|
||||
|
Loading…
Reference in New Issue
Block a user