Files
Morten Stenshorne c4509a62d4 Bug 1697027 [wpt PR 27905] - Correct transform origin, etc. for block fragmentation., a=testonly
Automatic update from web-platform-tests
Correct transform origin, etc. for block fragmentation.

The spec [1] says that the transform origin and percent transform
components are to be calculated independently for each fragment. We'll
now do this when LayoutNGBlockFragmentation is enabled, unless fragment
stitching is required (i.e. we're compositing and want block
fragmentation at the same time).

Added two WPT tests - one that triggers compositing, and one that
doesn't. The one that triggers compositing will fail both with legacy
and NG block fragmentation, as long as CompositeAfterPaint isn't
enabled.

Since we need to stitch fragments together when CompositeAfterPaint
isn't enabled, I copied the compositing-triggering WPT test over to
fast/multicol/, so that we can keep an expectation file for the current
incorrect rendering, to ensure that we stay bug-compatible with legacy
block fragmentation.

[1] https://www.w3.org/TR/css-break-3/#transforms

Bug: 829028
Change-Id: I01eedaef80787d66926a2347131a7b0967f85ecc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2739346
Commit-Queue: Morten Stenshorne <[email protected]>
Reviewed-by: Xianzhu Wang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#860662}

--

wpt-commits: 01009692a980fd0fb19c3c848ca0ead1d7008a26
wpt-pr: 27905
2021-03-19 10:34:18 +00:00

24 lines
902 B
HTML

<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:[email protected]">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#transforms">
<meta name="assert" content="Test that transform-origin is calculated correctly and individually for each fragment, also when the transform-establishing element is overflowed.">
<link rel="match" href="transform-007-ref.html">
<style>
.transformed {
will-change: transform;
transform: rotate(25deg);
transform-origin: bottom right;
background: hotpink;
}
.child {
margin-left: auto;
width: 50px;
background: lime;
}
</style>
<div style="columns:4; column-fill:auto; width:460px; column-gap:20px; margin-top:50px; height:100px; background:yellow;">
<div class="transformed" style="margin-top:50px; height:175px;">
<div class="child" style="height:300px;"></div>
</div>
</div>