summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/selection/shadow-dom/cross-shadow-boundary-6.html
blob: cc264a66686dc3425099461f02cc4b51be1ab663 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!doctype html>
<html class="reftest-wait">
<head>
<link rel=match href="cross-shadow-boundary-6-ref.html">
</head>
<span id="span">Start
<div>
  <template shadowrootmode="open">
    <span id="inner1">inner1</p>
    <span id="inner2">inner2</p>
  </template>
</div>
</span>
<script>
  const start = document.getElementById("span").firstChild;
  const end = document.querySelector('div').shadowRoot.getElementById("inner2");

  async function waitForRAFs() {
    return new Promise(resolve => {
      window.requestAnimationFrame(() => {
        window.requestAnimationFrame(() => {
          window.requestAnimationFrame(() => {
            resolve();
          });
        });
      });
    });
  }

  async function runTest() {
    window.getSelection().setBaseAndExtent(start, 3, end.firstChild, 3);
    await waitForRAFs();

    window.getSelection().removeAllRanges();
    await waitForRAFs();

    window.getSelection().setBaseAndExtent(start, 3, end.firstChild, 3);
    await waitForRAFs();
    document.documentElement.className = "";
  }

  runTest();
</script>
</html>