summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/accessibility/crashtests/content-visibility-generated-content-removal.html
blob: b880e244fe17099e829d54ea62d4d53fd434b829 (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
<!DOCTYPE HTML>
<html class="test-wait">
<style>
  div { content-visibility: auto; }
  div::after { content: "Bar" }
</style>
<div>Foo</div>
<div style="height:4000px"></div>
<script>
  // Ensure no crash when removing element with generated content after
  // `content-visibility: auto` content goes out of view.
  requestAnimationFrame(() => {
    requestAnimationFrame(() => {
      // Let one layout run with the div content in view, then
      // scroll it out of view.
      document.scrollingElement.scrollTop = 3000;

      // Run three frames to ensure a new layout happens with the
      // 'auto' content hidden (i.e. layout structures are
      // destroyed), then remove the div with a pseudo element which
      // was previously problematic.
      requestAnimationFrame(() => {
        requestAnimationFrame(() => {
          requestAnimationFrame(() => {
              document.querySelector('div').remove();
              document.documentElement.className = '';
          })
        })
      })
    })
  });
</script>