| Verify that shadow roots with identical styles share style resolvers (have equal identifier below). |
| <input></input> |
| <textarea></textarea> |
| <div id=a></div> |
| <div id=b></div> |
| <div id=c></div> |
| <div id=d></div> |
| <div id=e></div> |
| <div id=f></div> |
| <div id=g></div> |
| <div id=h></div> |
| <div id=i></div> |
| |
| <pre id=log></pre> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| function attachShadowWithStyle(id, style) |
| { |
| const element = document.querySelector("#" + id); |
| const shadow = element.attachShadow({ mode: "open" }); |
| shadow.innerHTML = ` |
| <style>${ style }</style> |
| <div>${ id }</div> |
| `; |
| } |
| |
| attachShadowWithStyle("a", ""); |
| attachShadowWithStyle("b", ""); |
| attachShadowWithStyle("c", ""); |
| attachShadowWithStyle("d", ""); |
| attachShadowWithStyle("e", "div { color: green }"); |
| attachShadowWithStyle("f", "div { color: green }"); |
| attachShadowWithStyle("g", "div { color: green }"); |
| attachShadowWithStyle("h", "div { color: green }"); |
| attachShadowWithStyle("i", "div { color: green }"); |
| |
| if (window.internals) { |
| log.textContent += internals.dumpStyleResolvers(); |
| log.textContent += "\nAfter style mutation\n" |
| } |
| |
| c.shadowRoot.querySelector("style").textContent = "div { color: green }"; |
| |
| { |
| const styleElement = document.createElement("style"); |
| styleElement.textContent = "div { color: green }"; |
| d.shadowRoot.appendChild(styleElement); |
| } |
| { |
| const styleElement = document.createElement("style"); |
| styleElement.textContent = "div { color: blue }"; |
| e.shadowRoot.appendChild(styleElement); |
| } |
| |
| f.shadowRoot.querySelector("style").sheet.addRule("div", "color: blue"); |
| g.shadowRoot.querySelector("style").textContent = ""; |
| h.shadowRoot.querySelector("style").remove(); |
| |
| if (window.internals) |
| log.textContent += internals.dumpStyleResolvers(); |
| |
| </script> |