diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-display/display-contents-shadow-dom-1.html | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-display/display-contents-shadow-dom-1.html')
-rw-r--r-- | testing/web-platform/tests/css/css-display/display-contents-shadow-dom-1.html | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-display/display-contents-shadow-dom-1.html b/testing/web-platform/tests/css/css-display/display-contents-shadow-dom-1.html new file mode 100644 index 0000000000..1f391163da --- /dev/null +++ b/testing/web-platform/tests/css/css-display/display-contents-shadow-dom-1.html @@ -0,0 +1,221 @@ +<!DOCTYPE html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html class="reftest-wait" lang="en-US"> + <head> + <meta charset="utf-8"> + <title>CSS Test: CSS display:contents; in Shadow DOM</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=907396"> + <link rel="help" href="https://drafts.csswg.org/css-display/"> + <link rel="match" href="display-contents-shadow-dom-1-ref.html"> +<style> +html,body { + color:black; background-color:white; font:12px/1 monospace; padding:0; margin:0; +} +.before::before, ::slotted(.before)::before {content: "a ";} +.after::after, ::slotted(.after)::after {content: " c";} +div.before::before {content: "X ";} +div.after::after {content: " Y";} +.b, .c, ::slotted(.b), ::slotted(.c) { display:contents; } +</style> + </head> + <body> + <div id="host1" class="before"></div> + <span id="host2"></span> + <div id="host3" class="after"></div> + <div id="host4" class="before after"></div> + <div id="host5" class="after"></div> + <div id="host6" class="before"></div> + <div id="host7"></div> + <div id="host8" class="after"></div> + <div id="host9" class="before after"></div> + <div id="hostA" class="after"></div> + <div id="hostB"></div> + <div id="hostC"></div> + <div id="hostD"></div> + <div id="hostE"></div> + <div id="hostF" class="before"></div> + <div id="hostG"></div> + <span id="hostH"></span> + <div id="hostI"></div> + <div id="hostJ"></div> + <span id="hostK"></span> + <div id="hostL"></div> + <div id="hostM"><i slot=i>Two</i><b slot=b>One</b></div> + <div id="hostN"><i slot=i class="c">Two</i><b slot=b>One</b></div> + <div id="hostO"><i slot=i>Two</i><b slot=b class="c">One</b></div> + <div id="hostP"><i slot=i class="c">Two</i><b slot=b class="c">One</b></div> + <div id="hostQ" class="c" style="color:blue"><i slot=i class="c">Two</i><b slot=b class="c">One</b></div>Three + <div id="hostS" class="c"><span class="c">S</span></div> + <div id="hostT" class="c">T</div> + <div id="hostU"><span slot="c">U</span></div> + <div id="hostV" class="c" style="color:red"><b slot="b" class="c" style="color:inherit">V</b></div> + + <script> + function shadow(id) { + return document.getElementById(id).attachShadow({mode:"open"}); + } + function span(s) { + var e = document.createElement("span"); + var t = document.createTextNode(s); + e.appendChild(t); + return e; + } + function text(s) { + return document.createTextNode(s); + } + function contents(n, slotName) { + var e = document.createElement("z"); + e.style.display = "contents"; + e.style.color = "blue"; + if (n) e.appendChild(n); + if (slotName) e.setAttribute("slot", slotName); + return e; + } + + function run() { + document.body.offsetHeight; + + shadow("host1").innerHTML = '<slot style="display:inline"></slot> c'; + shadow("host2").innerHTML = 'a <slot style="display:contents"></slot> c'; + shadow("host3").innerHTML = 'a <slot style="display:contents"></slot>'; + shadow("host4").innerHTML = '<slot style="display:contents"></slot>'; + shadow("host5").innerHTML = 'a <slot style="display:contents"></slot>'; + shadow("host6").innerHTML = '<z style="color:blue; display:contents"><slot style="display:inline"></slot></z> c'; + shadow("host7").innerHTML = 'a <slot style="display:contents"></slot> c'; + shadow("host8").innerHTML = 'a <z style="color:blue; display:contents"><slot style="display:contents"></z></slot>'; + shadow("host9").innerHTML = '<slot style="display:contents"></slot>'; + shadow("hostA").innerHTML = 'a <slot style="display:contents"></slot>'; + shadow("hostB").innerHTML = 'a <slot name="c" style="display:contents"></slot> <slot name="b" style="display:contents"></slot> B'; + shadow("hostC").innerHTML = 'A <slot name="c" style="display:contents"></slot> <slot name="b" style="display:contents"></slot> B'; + shadow("hostD").innerHTML = 'A <slot name="c" style="display:contents"></slot> <slot name="b" style="display:contents"></slot> B <slot name="b"></slot>'; + shadow("hostE").innerHTML = 'A <slot name="c" style="display:contents"></slot> <slot name="b" style="display:contents"></slot> B'; + shadow("hostF").innerHTML = '<slot name="c" style="display:contents"></slot> <slot name="b" style="display:contents"></slot> B'; + shadow("hostG").innerHTML = '<slot name="b" style="display:contents"></slot>'; + shadow("hostH").innerHTML = '<slot name="b" style="display:contents"></slot>'; + shadow("hostI").innerHTML = 'A<slot name="b" style="display:contents"></slot>'; + shadow("hostJ").innerHTML = 'A<slot name="b" style="display:contents"></slot>'; + shadow("hostK").innerHTML = '<slot name="b" style="display:contents"></slot>'; + shadow("hostL").innerHTML = '<slot name="b" style="display:contents"></slot>'; + shadow("hostM").innerHTML = '<slot name="b" style="display:contents"></slot><slot name="i" style="display:inline"></slot>'; + shadow("hostN").innerHTML = '<slot name="b" style="display:contents"></slot><slot name="i" style="display:inline"></slot>'; + shadow("hostO").innerHTML = '<slot name="b" style="display:contents"></slot><slot name="i" style="display:inline"></slot>'; + shadow("hostP").innerHTML = '<slot name="b" style="display:contents"></slot><slot name="i" style="display:inline"></slot>'; + shadow("hostQ").innerHTML = '<slot name="b" style="display:contents"></slot><slot name="i" style="display:inline"></slot>'; + } + + function tweak() { + document.body.offsetHeight; + + host1.appendChild(span("1")); + host2.appendChild(text("2")); + host3.appendChild(span("3")); + host4.appendChild(text("4")); + + var e = span("5"); + e.style.display = "contents"; + host5.appendChild(e); + + host6.appendChild(span("6")); + host7.appendChild(contents(text("7"))); + host8.appendChild(contents(span("8"))); + host9.appendChild(contents(text("9"))); + + var e = contents(span("A")); + hostA.appendChild(e); + + var e = contents(text("2"), "b"); + hostB.appendChild(e); + var e = contents(text("1"), "c"); + hostB.appendChild(e); + + var e = contents(text("2"), "b"); + e.className = "after"; + hostC.appendChild(e); + var e = contents(text("1"), "c"); + e.className = "before"; + hostC.appendChild(e); + + var e = contents(text("2"), "b"); + e.className = "before after"; + hostD.appendChild(e); + var e = contents(text(" 3"), "b"); + e.className = "before after"; + hostD.appendChild(e); + var e = contents(text("1"), "c"); + e.className = "before"; + hostD.appendChild(e); + + var e = contents(contents(text("2")), "b"); + e.className = "before after"; + hostE.appendChild(e); + var e2 = contents(text("1"), "c"); + e2.className = "before after"; + hostE.insertBefore(e2, e); + + var e = contents(text("2"), "b"); + e.className = "before after"; + hostF.appendChild(e); + var e2 = contents(text("1"), "c"); + e2.className = "before after"; + hostF.insertBefore(e2, e); + + var e = contents(contents(text("1")), "b"); + hostG.appendChild(e); + var e = contents(text("2"), "b"); + e.className = "before after"; + hostG.appendChild(e); + + var e = contents(contents(text("2")), "b"); + hostH.appendChild(e); + var e2 = contents(text("1"), "b"); + e2.className = "before after"; + hostH.insertBefore(e2, e); + + var e = contents(text("b"), "b"); + hostI.appendChild(e); + var e = span("c"); + e.setAttribute("slot", "b"); + hostI.appendChild(e); + + var e = contents(contents(text("b")), "b"); + hostJ.appendChild(e); + var e = span("c"); + e.setAttribute("slot", "b"); + hostJ.appendChild(e); + + var inner = span("b"); + inner.className = "after"; + var e = contents(contents(inner), "b"); + hostK.appendChild(e); + var e = span("d"); + e.setAttribute("slot", "b"); + hostK.appendChild(e); + + var inner = contents(null); + inner.className = "before"; + var e = contents(inner, "b"); + hostL.appendChild(e); + var e = span("b"); + e.setAttribute("slot", "b"); + hostL.appendChild(e); + + document.body.offsetHeight; + setTimeout(function() { + shadow("hostS"); + shadow("hostT"); + shadow("hostU"); + shadow("hostV").innerHTML = '<z style="color:green"><slot name="b"></slot></z>'; + + document.body.offsetHeight; + document.documentElement.removeAttribute("class"); + },0); + } + + run(); + setTimeout(tweak, 0); + </script> + </body> +</html> |