Bug 1560929 [wpt PR 17429] - Don't skip fragment clip if there are other clips for composited layers, a=testonly

Automatic update from web-platform-tests
Don't skip fragment clip if there are other clips for composited layers

Composited layer under multicol is still not fully correctly
supported. Currently we don't allow fragmentation of composited layers,
and skip fragment clip for them. However, if there are other clips below
the fragment clip, we should not skip fragment clip to ensure the other
clips are correctly applied. This is still not fully correct (see the
comment in the code for details), but the result is less broken in many
cases. Hopefully we'll fully fix the issue in
CompositeAfterPaint+LayoutNG-box-fragments.

Bug: 976187
Change-Id: Ica9acc71f0d1204d6380f1bcac3e2159631d63e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1670413
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#671480}

--

wpt-commits: 1c33536fe6e7d2a6a0323bdb849a5a80c33513a6
wpt-pr: 17429
This commit is contained in:
Xianzhu Wang 2019-07-19 12:39:28 +00:00 коммит произвёл James Graham
Родитель 4d0e2fd4d6
Коммит 44143e4feb
2 изменённых файлов: 33 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,2 @@
<!DOCTYPE html>
<div style="width: 100px; height: 100px; background: green"></div>

Просмотреть файл

@ -0,0 +1,31 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-multicol">
<link rel="match" href="composited-under-clip-under-multicol-ref.html">
<meta name="assert" content="Test that clip under multicol is correctly applied on composited child">
<style>
.columns {
columns: 2;
column-gap: 20px;
width: 220px;
height: 100px;
}
.clip {
height: 100px;
overflow: hidden;
}
.composited {
will-change: transform;
margin-top: -20px;
margin-left: -20px;
border: 20px solid red;
width: 200px;
height: 200px;
background: green;
}
</style>
<div class="columns">
<div class="clip">
<div class="composited"></div>
</div>
<div class="clip"></div>
</div>