diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:44:51 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:44:51 +0000 |
commit | 9e3c08db40b8916968b9f30096c7be3f00ce9647 (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /layout/style/crashtests/1383981-3.html | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/style/crashtests/1383981-3.html')
-rw-r--r-- | layout/style/crashtests/1383981-3.html | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/layout/style/crashtests/1383981-3.html b/layout/style/crashtests/1383981-3.html new file mode 100644 index 0000000000..91891d3d3d --- /dev/null +++ b/layout/style/crashtests/1383981-3.html @@ -0,0 +1,36 @@ +<!doctype html> +<style> +div { padding: 1px; } +.test div { padding: 2px; } +.test div div { padding: 3px; } +.test div div div { background: orange; } +.test div div div div { background: white; } +.test div div div div div { background: red; } +</style> +<body> +<script> +let root = document.createElement('div'); +let p = root; +for (let i = 0; i < 1000; ++i) { + p = p.appendChild(document.createElement('div')); + p.appendChild(document.createTextNode(i)); +} +document.body.appendChild(root); + +// Flush styles. +document.body.offsetTop; + +// Add 20 more top-level siblings to ensure that the style traversal goes +// parallel before the deep tree is processed. +// +// Note that we need to make these children of the <html> element, not the +// <body> element, because invalidations get processed by the parent when +// enqueuing children, so the _parent_ needs to be at a level in the DOM +// with enough dirty siblings to trigger a switch to parallel mode. +for (let i = 0; i < 20; ++i) { + document.documentElement.appendChild(document.createElement('div')); +} + +root.className = 'test'; +</script> +</body> |