<!DOCTYPE html> <script src="../../../resources/js-test.js"></script> <script> if (window.testRunner) testRunner.keepWebHistory(); </script> <style> :link, :visited { all: initial } #match { background-color: red } :visited #match { background-color: green } #visited + div { color: pink } </style> <a id="visited"> <span></span> <span> <span></span> <span id="match"></span> </span> </a> <div> <div></div> <div></div> <div></div> <div></div> </div> <script> description("Use descendant invalidation set for :visited pseudo class.") var red = "rgb(255, 0, 0)"; var green = "rgb(0, 128, 0)"; if (window.internals) shouldBe("internals.computedStyleIncludingVisitedInfo(match).backgroundColor", "red"); visited.offsetTop; // Force recalc. visited.href = ""; if (window.internals) { // Ideally, the affected element count should be 2, but there is a _insideLink that // causes inheritance to recalc all elements inside <a>. shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "5"); shouldBe("internals.computedStyleIncludingVisitedInfo(match).backgroundColor", "green"); } </script>