| <!DOCTYPE html> |
| <html> |
| <body> |
| <p>Test passes if you see a single 100px by 100px green box below.</p> |
| <my-host id="host1" style="background: red;">FAIL</my-host> |
| <my-host id="host2" style="background: green;"><div slot="foo" style="background: red;">FAIL</div></my-host> |
| <my-host id="host3" style="background: red;"><div style="background: green;"></div></my-host> |
| <my-host id="host4" style="background: red;"><div style="background: green;"></div></my-host> |
| <style> |
| |
| my-host { |
| display: block; |
| width: 100px; |
| height: 25px; |
| overflow: hidden; |
| } |
| |
| my-host > div { |
| width: 100%; |
| height: 100%; |
| } |
| |
| </style> |
| <script> |
| |
| function forceLayout() { |
| if (window.internals) |
| internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(); |
| else |
| document.querySelector('p').getBoundingClientRect(); |
| } |
| |
| try { |
| forceLayout(); |
| |
| var shadow1 = document.getElementById('host1').attachShadow({mode: 'open'}); |
| shadow1.innerHTML = '<div style="width: 100%; height: 100%; background: green;"></div>'; |
| |
| var shadow2 = document.getElementById('host2').attachShadow({mode: 'open'}); |
| |
| var shadow3 = document.getElementById('host3').attachShadow({mode: 'open'}); |
| shadow3.appendChild(document.createElement('slot')); |
| |
| var shadow4 = document.getElementById('host4').attachShadow({mode: 'open'}); |
| shadow4.innerHTML = '<div style="width: 100%; height: 100%; background: red;">' |
| + '<div style="width: 100%; height: 100%; background: red;"></div><slot slot="foo"></slot></div>'; |
| |
| var shadow5 = shadow4.firstChild.attachShadow({mode: 'closed'}); |
| var innerSlot = document.createElement('slot'); |
| innerSlot.name = 'foo'; |
| shadow5.appendChild(innerSlot); |
| |
| } catch (exception) { |
| document.body.appendChild(document.createTextNode(exception)); |
| } |
| |
| </script> |
| </body> |
| </html> |