Instead of passing down a complex clipping region to each item, used
shared clipping to handle overflow:hidden and CSS clips. In addition to
being more efficient, this should also fix quite a few issues related
to absolutely positioned elements.
One existing reftest is slightly modified to avoid tickling a quirk
with the way that WebRender rasterizes masks. We are working out how to
best express these combined masks with the API or need to. The change
does not affect the original subject of the reftest.
Fixes#13109.
Fixes#10151.
Fixes#7575.
Fixes#8074.
Fixes#8780.
This includes a WR update that improves pixel snapping. Specifically,
the non-transform shader now snaps to device pixels in world space,
rather than local space.
This makes 31 new tests pass, and adds 4 new failures.
Of the new failures:
- The three background size tests appear to be an OSMesa accuracy
issue. Near the bottom of the image, a small number of pixels
are different from the reference by a value of 1.0 / 255.0. I've
confirmed on 3 real GPUs and also on llvmpipe that the tests
match on those devices. This would be a good case for fuzzy test
support in WPT.
- The other failing test appears to have unreasonable accuracy
requirements as it also fails on Gecko and Chromium in the same
way that the test now fails on WR.
The height test is removed in mime_sniffing_font_context because of rounding
changes in app_units. The rest of that test is still useful though, given it
will timeout if the font fails to be sniffed.