The code in RenderBoxModelScaleObserver::shouldPaintBackgroundAtLowQuality tests if the scaling has changed from the previous value by comparing the transformations:
// We are scaled, but we painted already at this size, so just keep using whatever mode we last painted with.
if ((!contextIsScaled || data->transform() == currentTransform) && data->size() == size)
This test fails if the scale is the same but the translation changes. This can lead to infinite repaint loop, if the document is painted in pieces using different translations (for example for tiling).
Created attachment 51154 [details]
Comment on attachment 51154 [details]
Committed r56239: <http://trac.webkit.org/changeset/56239>