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