| <!DOCTYPE html> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <style> |
| body { |
| --a: red; |
| --b: blue; |
| } |
| |
| .setAToGreen { |
| --a: green; |
| } |
| |
| .setAToB { |
| --a: var(--b); |
| } |
| |
| .backgroundA { |
| background: var(--a); |
| } |
| </style> |
| <div id="outer"> |
| <div class="backgroundA" id='backgroundA'></div> |
| |
| <div class="setAToB"> |
| <div class="backgroundA" id='backgroundB'></div> |
| </div> |
| </div> |
| |
| <script> |
| test(function() { |
| var red = "rgb(255, 0, 0)"; |
| var blue = "rgb(0, 0, 255)"; |
| var green = "rgb(0, 128, 0)"; |
| assert_equals(getComputedStyle(backgroundA).backgroundColor, red); |
| assert_equals(getComputedStyle(backgroundB).backgroundColor, blue); |
| outer.classList.add('setAToGreen'); |
| assert_equals(getComputedStyle(backgroundA).backgroundColor, green); |
| assert_equals(getComputedStyle(backgroundB).backgroundColor, blue); |
| }, 'Custom properties are recomputed when parent style changes.'); |
| </script> |