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