Bug 1267999 - An APZC cannot be checkerboarding if APZ is force-disabled for it. r=kats
MozReview-Commit-ID: Ai6aiRFBPl1
--- a/gfx/layers/apz/src/AsyncPanZoomController.cpp
+++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp
@@ -3144,17 +3144,17 @@ AsyncPanZoomController::ReportCheckerboa
}
mCheckerboardEvent = nullptr;
}
}
bool AsyncPanZoomController::IsCurrentlyCheckerboarding() const {
ReentrantMonitorAutoEnter lock(mMonitor);
- if (!gfxPrefs::APZAllowCheckerboarding()) {
+ if (!gfxPrefs::APZAllowCheckerboarding() || mScrollMetadata.IsApzForceDisabled()) {
return false;
}
CSSPoint currentScrollOffset = mFrameMetrics.GetScrollOffset() + mTestAsyncScrollOffset;
CSSRect painted = mLastContentPaintMetrics.GetDisplayPort() + mLastContentPaintMetrics.GetScrollOffset();
painted.Inflate(CSSMargin::FromAppUnits(nsMargin(1, 1, 1, 1))); // fuzz for rounding error
CSSRect visible = CSSRect(currentScrollOffset, mFrameMetrics.CalculateCompositedSizeInCssPixels());
if (painted.Contains(visible)) {