4 border: 1px solid black;
10 <script src="../../resources/js-test.js"></script>
12 if (window.testRunner)
13 testRunner.dumpAsText();
15 function createElementWithShadow(style) {
16 var host = document.createElement('div');
17 var root = host.createShadowRoot();
18 root.innerHTML = '<style>' + (style ? style : 'span {color:blue;}') + '</style><span>item</span>';
22 function querySelectorInShadow(host, selector) {
23 return host.shadowRoot.querySelector(selector);
26 window.onload = function() {
27 var container = document.querySelector('#container');
28 var host1 = createElementWithShadow();
29 var host2 = createElementWithShadow();
30 container.appendChild(host1);
31 container.appendChild(host2);
32 document.body.offsetHeight;
33 shouldBeTrue(String(internals.isSharingStyle(host1, host2)));
34 shouldBeTrue(String(internals.isSharingStyle(querySelectorInShadow(host1, 'span'), querySelectorInShadow(host2, 'span'))));
36 var host3 = createElementWithShadow();
37 host3.createShadowRoot();
38 container.appendChild(host3);
39 document.body.offsetHeight;
40 shouldBeFalse(String(internals.isSharingStyle(host1, host3)));
42 var host4 = createElementWithShadow('span {font-size: 20px;}');
43 container.appendChild(host4);
44 document.body.offsetHeight;
45 shouldBeFalse(String(internals.isSharingStyle(host1, host4)));
47 host2.classList.add('foo');
48 document.body.offsetHeight;
49 shouldBeFalse(String(internals.isSharingStyle(host1, host2)));
52 <div id="container"></div>