diff --git a/gfx/layers/apz/src/AsyncPanZoomController.cpp b/gfx/layers/apz/src/AsyncPanZoomController.cpp index 51ae4c49be84..7e639c0008d3 100644 --- a/gfx/layers/apz/src/AsyncPanZoomController.cpp +++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp @@ -2887,6 +2887,7 @@ AsyncPanZoomController::RequestContentRepaint(const FrameMetrics& aFrameMetrics, aFrameMetrics.GetScrollOffset().x) < EPSILON && fabsf(mLastPaintRequestMetrics.GetScrollOffset().y - aFrameMetrics.GetScrollOffset().y) < EPSILON && + aFrameMetrics.GetPresShellResolution() == mLastPaintRequestMetrics.GetPresShellResolution() && aFrameMetrics.GetZoom() == mLastPaintRequestMetrics.GetZoom() && fabsf(aFrameMetrics.GetViewport().width - mLastPaintRequestMetrics.GetViewport().width) < EPSILON && @@ -3315,6 +3316,9 @@ void AsyncPanZoomController::NotifyLayersUpdated(const FrameMetrics& aLayerMetri / mFrameMetrics.GetCumulativeResolution(); float presShellResolutionChange = aLayerMetrics.GetPresShellResolution() / mFrameMetrics.GetPresShellResolution(); + if (presShellResolutionChange != 1.0f) { + needContentRepaint = true; + } mFrameMetrics.ZoomBy(totalResolutionChange / presShellResolutionChange); } else { // Take the new zoom as either device scale or composition width or