Bug 1629011 - Recurse into block wrappers when marking preserve-3d frames for display list building r=mattwoodrow

Differential Revision: https://phabricator.services.mozilla.com/D71783
This commit is contained in:
Miko Mynttinen 2020-04-22 06:06:59 +00:00
Родитель fa006f3af3
Коммит bb9823e787
4 изменённых файлов: 65 добавлений и 0 удалений

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

@ -1885,6 +1885,11 @@ void nsDisplayListBuilder::MarkPreserve3DFramesForDisplayList(
if (child->Combines3DTransformWithAncestors()) {
MarkFrameForDisplay(child, aDirtyFrame);
}
if (child->IsBlockWrapper()) {
// Mark preserve-3d frames inside the block wrapper.
MarkPreserve3DFramesForDisplayList(child);
}
}
}
}

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

@ -154,3 +154,5 @@ pref(layout.css.individual-transform.enabled,true) == animate-layer-scale-inheri
test-pref(layout.css.zoom-transform-hack.enabled,true) == zoom-hack-1.html zoom-hack-ref.html
test-pref(layout.css.zoom-transform-hack.enabled,false) != zoom-hack-1.html zoom-hack-ref.html
test-pref(layout.css.zoom-transform-hack.enabled,true) == zoom-hack-2.html zoom-hack-ref.html
== transform-anon-block-1.html transform-anon-block-1-ref.html

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

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<style>
.parent {
border: none;
transform-style: preserve-3d;
background: red;
display: inline-block;
}
.child {
width: 100px;
height: 100px;
background: blue;
transform: rotate(45deg);
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>

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

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<style>
.parent {
border: none;
transform-style: preserve-3d;
background: red;
padding: 0px;
}
.child {
width: 100px;
height: 100px;
background: blue;
transform: rotate(45deg);
}
</style>
</head>
<body>
<button class="parent">
<div class="child"></div>
</button>
</body>
</html>