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 |