| <!DOCTYPE html> |
| <script src="../../../resources/js-test.js"></script> |
| <style> |
| :empty { background-color: green } |
| #empty + div, #not-empty + div { color: pink } |
| </style> |
| <div id="empty"></div> |
| <div> |
| <div></div> |
| <div></div> |
| <div></div> |
| <div></div> |
| </div> |
| <div id="notEmpty"><div id="child"></div></div> |
| <div> |
| <div></div> |
| <div></div> |
| <div></div> |
| <div></div> |
| </div> |
| <script> |
| description("Use descendant invalidation set for :empty pseudo class.") |
| |
| var transparent = "rgba(0, 0, 0, 0)"; |
| var green = "rgb(0, 128, 0)"; |
| |
| shouldBe("getComputedStyle(empty, '').backgroundColor", "green"); |
| |
| empty.offsetTop; // force recalc |
| empty.appendChild(document.createElement("div")); |
| |
| if (window.internals) |
| shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "2"); |
| |
| shouldBe("getComputedStyle(empty, '').backgroundColor", "transparent"); |
| |
| shouldBe("getComputedStyle(notEmpty, '').backgroundColor", "transparent"); |
| |
| notEmpty.offsetTop; // force recalc |
| notEmpty.removeChild(child); |
| |
| if (window.internals) |
| shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1"); |
| |
| shouldBe("getComputedStyle(notEmpty, '').backgroundColor", "green"); |
| </script> |