Prevent squashing of border-radius layers

Desktop / Chromium - Stephen Chenney [chromium.org] - 12 October 2017 09:11 EDT

Inline transforms cause overlap to be assumed, which in turn results in sibling layers being squashed. But when that is done, the border radius mask needed for descendants of the siblings is not applied and border radius is missing.

This patch prevents squashing of layers with border radius.

R=chrishtr@chromium.org BUG=761298

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Idc321a376634b0fe0b2f3cda92415d014904fda7 Reviewed-on: https://chromium-review.googlesource.com/699170

8ff2371 Prevent squashing of border-radius layers
.../FlagExpectations/enable-slimming-paint-v2 | 1 +
...ts-squashing-with-inline-transform-expected.txt | 15 +++++
...s-prevents-squashing-with-inline-transform.html | 35 +++++++++++
...ts-squashing-with-inline-transform-expected.png | Bin 0 -> 4265 bytes
...ts-squashing-with-inline-transform-expected.png | Bin 0 -> 4265 bytes
...ts-squashing-with-inline-transform-expected.png | Bin 0 -> 4266 bytes
...ts-squashing-with-inline-transform-expected.png | Bin 0 -> 4266 bytes
.../compositing/CompositedLayerMappingTest.cpp | 68 ++++++++++++++++++++-
.../paint/compositing/CompositingLayerAssigner.cpp | 3 +
.../graphics/SquashingDisallowedReasons.cpp | 4 ++
.../platform/graphics/SquashingDisallowedReasons.h | 1 +
11 files changed, 125 insertions(+), 2 deletions(-)

Upstream: git.chromium.org


  • Share