diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /layout/reftests/css-grid/support/dyn.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/reftests/css-grid/support/dyn.js')
-rw-r--r-- | layout/reftests/css-grid/support/dyn.js | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/layout/reftests/css-grid/support/dyn.js b/layout/reftests/css-grid/support/dyn.js new file mode 100644 index 0000000000..816a6f9b61 --- /dev/null +++ b/layout/reftests/css-grid/support/dyn.js @@ -0,0 +1,127 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- + * vim: sw=2 ts=2 sts=2 et filetype=javascript + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +function loadURL(url,callback) { + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (xhttp.readyState == 4 && xhttp.status == 200) { + callback(xhttp.responseText); + } + }; + xhttp.open("GET", url, true); + xhttp.send(); +} + +function dyn1(selector) { + // get an array of elements matching |selector| + var elems = Array.prototype.slice.call(document.querySelectorAll(selector)) + + // remove the first item in each grid + var removed = elems.map(function(e) { + var child = e.children[0]; + if (child) { + var next = child.nextSibling; + e.removeChild(child); + return [ e, child, next ]; + } else { + return null; + } + }); + + document.body.style.display = 'block'; + document.body.offsetHeight; + + // insert the removed item + removed.map(function(a) { + if (a) { + a[0].insertBefore(a[1],a[2]); + } + }); +} + +function dyn2(selector) { + // get an array of elements matching |selector| + var elems = Array.prototype.slice.call(document.querySelectorAll(selector)) + + // inject a new first item in each grid + var inserted = elems.map(function(e) { + var child = document.createElement('span'); + e.insertBefore(child, e.firstChild); + return [ e, child ]; + }); + + document.body.style.display = 'block'; + document.body.offsetHeight; + + // remove the inserted item + inserted.map(function(a) { + a[0].removeChild(a[1]); + }); +} + +function dyn3(selector) { + // get an array of elements matching |selector| + var elems = Array.prototype.slice.call(document.querySelectorAll(selector)) + + // remove the second item in each grid + var removed = elems.map(function(e) { + var child = e.children[1]; + if (child) { + var next = child.nextSibling; + e.removeChild(child); + return [ e, child, next ]; + } else { + return null; + } + }); + + document.body.style.display = 'block'; + document.body.offsetHeight; + + // insert the removed items + removed.map(function(a) { + if (a) { + a[0].insertBefore(a[1],a[2]); + } + }); +} + +function dyn4(selector) { + dyn3(selector); + dyn2(selector); +} + +function dyn5(selector) { + // get an array of elements matching |selector| + var elems = Array.prototype.slice.call(document.querySelectorAll(selector)) + + // inject 20 new items in each grid + var inserted = elems.map(function(e) { + var a = new Array; + for (var i = 0; i < 20; ++i) { + var child = document.createElement('span'); + e.insertBefore(child, e.firstChild); + a.push(child); + } + return [ e, a ]; + }); + + document.body.style.display = 'block'; + document.body.offsetHeight; + + // remove the inserted item + inserted.map(function(a) { + a[1].forEach(function(child) { + a[0].removeChild(child); + }); + }); +} + +function dynamicTest(url, callback) { + document.body.style.display=''; + document.body.offsetHeight; + loadURL(url,callback); +} |