This bug tracks the remaining issues of found during investigation of bug 879173 .
The basic case is:
<!DOCTYPE html>
<div id="container" style="margin: 100px; transform: rotate(45deg); overflow: hidden;
width: 200px; height: 200px; border: 20px solid green">
<div id="content" style="will-change: transform; width: 400px; height: 400px; background: red">
</div>
</div>
The following cases are based on the basic case, which may affect the implementation of the fix:
1. The rotated clip can be a non-stacking-context:
<div id="container" style="margin: 100px; transform: rotate(45deg); width: 200px">
<div id="clip" style="overflow: hidden; width: 200px; height: 200px; border: 20px solid green">
<div id="content" style="will-change: transform; width: 400px; height: 400px; background: red">
</div>
</div>
</div>
1a. A more complicated text case: the clip of the non-stacking-context needs to apply on two paint sub-trees:
<div id="rotate" style="margin: 100px; width: 300px; transform: rotate(45deg)">
<div id="yellow" style="position: absolute; width: 200px; height: 22px; background: yellow; z-index: 1; will-change: transform"></div>
<div id="clip" style="width: 100px; height: 100px; overflow: hidden">
<div id="green" style="position: relative; width: 200px; height: 100px; background: green; will-change: transform"></div>
<div id="red" style="position: relative; top: -100px; z-index: 2; width: 50px; height: 200px; background: red; will-change: transform"></div>
</div>
</div>
2. The rotated clip interleaves with an effect. Test case TBD.
These cases are rare, so this bug should not block experimental launch of BGPT.
Comment 1 by wangxianzhu@chromium.org
, Oct 1