| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <container> |
| <subcontainer> |
| <target>Text</target> |
| </subcontainer> |
| </container> |
| <script> |
| var target = document.querySelector("target"); |
| var container = document.querySelector("container"); |
| var subcontainer = document.querySelector("subcontainer"); |
| test(() => { |
| target.offsetLeft; |
| internals.startTrackingStyleRecalcs(); |
| assert_equals(getComputedStyle(target).backgroundColor, "rgba(0, 0, 0, 0)", "getComputedStyle color is correct"); |
| assert_equals(internals.styleRecalcCount(), 0, "getComputedStyle didn't trigger style resolution"); |
| }, "No style resolution when style is valid."); |
| |
| test(() => { |
| target.offsetLeft; |
| internals.startTrackingStyleRecalcs(); |
| container.style.backgroundColor = "blue"; |
| assert_equals(getComputedStyle(target).backgroundColor, "rgba(0, 0, 0, 0)", "getComputedStyle color is correct"); |
| assert_equals(internals.styleRecalcCount(), 0, "getComputedStyle didn't trigger style resolution"); |
| }, "No style resolution when parent style is invalid and querying non-inherited property."); |
| |
| test(() => { |
| target.style.backgroundColor = "inherit"; |
| target.offsetLeft; |
| internals.startTrackingStyleRecalcs(); |
| container.style.backgroundColor = "red"; |
| assert_equals(getComputedStyle(target).backgroundColor, "rgba(0, 0, 0, 0)", "getComputedStyle color is correct"); |
| assert_equals(internals.styleRecalcCount(), 0, "getComputedStyle didn't trigger style resolution"); |
| }, "This still works with 'inherit'"); |
| |
| test(() => { |
| target.style.backgroundColor = "inherit"; |
| subcontainer.style.backgroundColor = "inherit"; |
| target.offsetLeft; |
| internals.startTrackingStyleRecalcs(); |
| container.style.backgroundColor = "green"; |
| assert_equals(getComputedStyle(target).backgroundColor, "rgb(0, 128, 0)", "getComputedStyle color is correct"); |
| assert_equals(internals.styleRecalcCount(), 1, "getComputedStyle did trigger style resolution"); |
| }, "Explicit 'inherit' chain triggers style resolution"); |
| </script> |