forked from mirrors/gecko-dev
Without the patch (or, rather, with the new code in nsStyleContext::CalcStyleDifferenceInternal commented out), the second of the tests added fails: TEST-UNEXPECTED-FAIL | layout/style/test/test_change_hint_optimizations.html | adding a transform style to an element with filter: blur(3px); should not cause frame reconstruction even when the element has absolutely positioned descendants - got 34, expected 28 The first of the new tests doesn't fail without the patch because will-change:transform influences HasTransformStyle. However, since that case is probably the most important one, it still seems worth testing explicitly. With the patches, both tests pass. MozReview-Commit-ID: 8n7QKGxd3j6
57 lines
1.6 KiB
HTML
57 lines
1.6 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test for style change hint optimizations</title>
|
|
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
<script type="application/javascript">
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
function runTests() {
|
|
|
|
/** Test for Bug 1251075 **/
|
|
function test_bug1251075_div(id) {
|
|
var utils = SpecialPowers.DOMWindowUtils;
|
|
|
|
var div = document.getElementById(id);
|
|
div.style.display = "";
|
|
|
|
var description = div.style.cssText;
|
|
|
|
div.firstElementChild.offsetTop;
|
|
var constructedBefore = utils.framesConstructed;
|
|
|
|
div.style.transform = "translateX(10px)";
|
|
div.firstElementChild.offsetTop;
|
|
is(utils.framesConstructed, constructedBefore,
|
|
"adding a transform style to an element with " + description +
|
|
" should not cause frame reconstruction even when the element " +
|
|
"has absolutely positioned descendants");
|
|
|
|
div.style.display = "none";
|
|
}
|
|
|
|
test_bug1251075_div("bug1251075_a");
|
|
test_bug1251075_div("bug1251075_b");
|
|
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="runTests()">
|
|
<div id="bug1251075_a" style="will-change: transform; display:none">
|
|
<div style="position: absolute; top: 0; left: 0;"></div>
|
|
<div style="position: fixed; top: 0; left: 0;"></div>
|
|
</div>
|
|
<div id="bug1251075_b" style="filter: blur(3px); display:none">
|
|
<div style="position: absolute; top: 0; left: 0;"></div>
|
|
<div style="position: fixed; top: 0; left: 0;"></div>
|
|
</div>
|
|
<pre id="test">
|
|
</pre>
|
|
</body>
|
|
</html>
|