diff options
Diffstat (limited to 'layout/style/test/test_reframe_pseudo_element.html')
-rw-r--r-- | layout/style/test/test_reframe_pseudo_element.html | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/layout/style/test/test_reframe_pseudo_element.html b/layout/style/test/test_reframe_pseudo_element.html new file mode 100644 index 0000000000..0e0b418e81 --- /dev/null +++ b/layout/style/test/test_reframe_pseudo_element.html @@ -0,0 +1,46 @@ +<!doctype html> +<meta charset="utf-8"> +<title> + Test for bug 1376352: We don't reframe all the time a replaced element that + matches generated content rules. +</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<style> +#flex::before, +input::before { + content: "Foo"; +} +</style> +<input type="text"> +<div id="flex"></div> +<script> +SimpleTest.waitForExplicitFinish(); +const utils = SpecialPowers.getDOMWindowUtils(window); + +function testNoReframe(callback) { + document.documentElement.offsetTop; + const previousConstructCount = utils.framesConstructed; + const previousRestyleGeneration = utils.restyleGeneration; + + callback(); + + document.documentElement.offsetTop; + isnot(previousRestyleGeneration, utils.restyleGeneration, + "We should have restyled"); + is(previousConstructCount, utils.framesConstructed, + "We shouldn't have reframed"); +} + +testNoReframe(function() { + const input = document.querySelector('input'); + input.style.color = "blue"; +}); + +testNoReframe(function() { + const flex = document.getElementById('flex'); + flex.style.color = "blue"; +}); + +SimpleTest.finish(); +</script> |