When layout.disable-pixel-alignment is set, reference-frame origins are
snapped in WebRender, where the (potentially fractional) external scroll
offset is removed reliably. ShouldSnapToGrid still rounded the origin in
Gecko (in scrolled space) for SVG outer-SVG anonymous child frames; the
display list builder then re-added the unsnapped external scroll offset,
leaving a sub-pixel residue that mis-places content by a device pixel.
This showed up as a visible seam between Google Docs SVG canvas tiles
under a fractional scroll offset.
Gate ShouldSnapToGrid on nsDisplayListBuilder::IsPaintingForWebRender():
on the WebRender path, leave reference-frame origin snapping to WebRender;
on the drawSnapshot / non-WebRender path (which has no WebRender snapping)
keep snapping in Gecko as before. Only the WebRender reference-frame
origin-snap sites pass the builder; the shared transform-matrix rounding
keeps snapping on all paths.
Differential Revision: https://phabricator.services.mozilla.com/D307185