32 lines
1 KiB
HTML
32 lines
1 KiB
HTML
<!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>
|