Bug 1224021 - Support fractional async scroll offsets in the reftest harness. r=tn
--- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp
@@ -2320,17 +2320,17 @@ nsDOMWindowUtils::GetAsyncPanZoomEnabled
} else {
*aResult = gfxPlatform::AsyncPanZoomEnabled();
}
return NS_OK;
}
NS_IMETHODIMP
nsDOMWindowUtils::SetAsyncScrollOffset(nsIDOMNode* aNode,
- int32_t aX, int32_t aY)
+ float aX, float aY)
{
nsCOMPtr<Element> element = do_QueryInterface(aNode);
if (!element) {
return NS_ERROR_INVALID_ARG;
}
FrameMetrics::ViewID viewId;
if (!nsLayoutUtils::FindIDFor(element, &viewId)) {
return NS_ERROR_UNEXPECTED;
--- a/dom/interfaces/base/nsIDOMWindowUtils.idl
+++ b/dom/interfaces/base/nsIDOMWindowUtils.idl
@@ -1426,17 +1426,17 @@ interface nsIDOMWindowUtils : nsISupport
*/
readonly attribute bool asyncPanZoomEnabled;
/**
* Set async scroll offset on an element. The next composite will render
* with that offset if async scrolling is enabled, and then the offset
* will be removed. Only call this while test-controlled refreshes is enabled.
*/
- void setAsyncScrollOffset(in nsIDOMNode aNode, in int32_t aX, in int32_t aY);
+ void setAsyncScrollOffset(in nsIDOMNode aNode, in float aX, in float aY);
/**
* Set async zoom value. aRootElement should be the document element of our
* document. The next composite will render with that zoom added to any
* existing zoom if async scrolling is enabled, and then the zoom will be
* removed. Only call this while test-controlled refreshes is enabled.
*/
void setAsyncZoom(in nsIDOMNode aRootElement, in float aValue);
--- a/gfx/layers/ipc/LayerTransactionParent.cpp
+++ b/gfx/layers/ipc/LayerTransactionParent.cpp
@@ -775,17 +775,17 @@ GetAPZCForViewID(Layer* aLayer, FrameMet
}
}
}
return nullptr;
}
bool
LayerTransactionParent::RecvSetAsyncScrollOffset(const FrameMetrics::ViewID& aScrollID,
- const int32_t& aX, const int32_t& aY)
+ const float& aX, const float& aY)
{
if (mDestroyed || !layer_manager() || layer_manager()->IsDestroyed()) {
return false;
}
AsyncPanZoomController* controller = GetAPZCForViewID(mRoot, aScrollID);
if (!controller) {
return false;
--- a/gfx/layers/ipc/LayerTransactionParent.h
+++ b/gfx/layers/ipc/LayerTransactionParent.h
@@ -127,17 +127,17 @@ protected:
virtual bool RecvSetTestSampleTime(const TimeStamp& aTime) override;
virtual bool RecvLeaveTestMode() override;
virtual bool RecvGetOpacity(PLayerParent* aParent,
float* aOpacity) override;
virtual bool RecvGetAnimationTransform(PLayerParent* aParent,
MaybeTransform* aTransform)
override;
virtual bool RecvSetAsyncScrollOffset(const FrameMetrics::ViewID& aId,
- const int32_t& aX, const int32_t& aY) override;
+ const float& aX, const float& aY) override;
virtual bool RecvSetAsyncZoom(const FrameMetrics::ViewID& aId,
const float& aValue) override;
virtual bool RecvFlushApzRepaints() override;
virtual bool RecvGetAPZTestData(APZTestData* aOutData) override;
virtual bool RecvRequestProperty(const nsString& aProperty, float* aValue) override;
virtual bool RecvSetConfirmedTargetAPZC(const uint64_t& aBlockId,
nsTArray<ScrollableLayerGuid>&& aTargets) override;
--- a/gfx/layers/ipc/PLayerTransaction.ipdl
+++ b/gfx/layers/ipc/PLayerTransaction.ipdl
@@ -85,17 +85,17 @@ parent:
// of the corresponding frame and transform origin and after converting to CSS
// pixels. If the layer is not transformed by animation, the return value will
// be void_t.
sync GetAnimationTransform(PLayer layer) returns (MaybeTransform transform);
// The next time the layer tree is composited, add this async scroll offset in
// CSS pixels for the given ViewID.
// Useful for testing rendering of async scrolling.
- sync SetAsyncScrollOffset(ViewID id, int32_t x, int32_t y);
+ sync SetAsyncScrollOffset(ViewID id, float x, float y);
// The next time the layer tree is composited, include this async zoom in
// for the given ViewID.
// Useful for testing rendering of async zooming.
sync SetAsyncZoom(ViewID id, float zoom);
// Flush any pending APZ repaints to the main thread.
async FlushApzRepaints();