| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../../../resources/run-after-display.js"></script> |
| 2 <script> | 3 <script> |
| 3 onload = function() { | 4 onload = function() { |
| 4 var host = document.getElementById('host'); | 5 var host = document.getElementById('host'); |
| 5 var sr = host.createShadowRoot(); | 6 var sr = host.createShadowRoot(); |
| 6 // To make documentScopeDirty clean, add fake style element to document. | 7 // To make documentScopeDirty clean, add fake style element to document. |
| 7 document.head.appendChild(document.createElement('style')); | 8 document.head.appendChild(document.createElement('style')); |
| 8 // Should invoke style recalc here. | 9 // Should invoke style recalc here. |
| 9 document.body.offsetLeft; | 10 document.body.offsetLeft; |
| 10 | 11 |
| 11 // Need a parent element of a shadow host. | 12 // Need a parent element of a shadow host. |
| 12 // Shadow hosts' styles are recalc-ed by updating styles in shadow trees, bu
t | 13 // Shadow hosts' styles are recalc-ed by updating styles in shadow trees, bu
t |
| 13 // Their parents are not recalc-ed. | 14 // Their parents are not recalc-ed. |
| 14 var parentOfHostInShadow = document.createElement('div'); | 15 var parentOfHostInShadow = document.createElement('div'); |
| 15 var hostInShadow = document.createElement('div'); | 16 var hostInShadow = document.createElement('div'); |
| 16 parentOfHostInShadow.appendChild(hostInShadow); | 17 parentOfHostInShadow.appendChild(hostInShadow); |
| 17 | 18 |
| 18 // Create shadow tree with style which has @import. | 19 // Create shadow tree with style which has @import. |
| 19 var sr2 = hostInShadow.createShadowRoot(); | 20 var sr2 = hostInShadow.createShadowRoot(); |
| 20 sr2.innerHTML = '<style>@import url("../../css/resources/green.css");</style
><div>PASS</div></style>'; | 21 sr2.innerHTML = '<style>@import url("../../css/resources/green.css");</style
><div>PASS</div></style>'; |
| 21 sr.appendChild(parentOfHostInShadow); | 22 sr.appendChild(parentOfHostInShadow); |
| 22 | 23 |
| 23 // Force style recalc before sheetLoaded here. | 24 // Force style recalc before sheetLoaded here. |
| 24 // document.body.offset is slow. It causes style recalc after sheetLoaded. | 25 // document.body.offset is slow. It causes style recalc after sheetLoaded. |
| 25 // Instead, use internals.updateStyleAndReturnAffectedElementCount | 26 // Instead, use internals.updateStyleAndReturnAffectedElementCount |
| 26 // (to emulate @import's network delay). | 27 // (to emulate @import's network delay). |
| 27 internals.updateStyleAndReturnAffectedElementCount(); | 28 internals.updateStyleAndReturnAffectedElementCount(); |
| 29 |
| 30 if (window.testRunner) |
| 31 testRunner.waitUntilDone(); |
| 32 runAfterDisplay(function() { |
| 33 if (window.testRunner) |
| 34 testRunner.notifyDone(); |
| 35 }); |
| 28 } | 36 } |
| 29 </script> | 37 </script> |
| 30 <div id="host"></div> | 38 <div id="host"></div> |
| OLD | NEW |