mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-10 21:28:04 +02:00
Automatic update from web-platform-tests Add more references to sticky position ref tests This is a follow-up patch of https://chromium-review.googlesource.com/c/chromium/src/+/2105754 This patch adds more reference rectangles to sticky ref-tests to catch when the main thread position is different from the sticky position. Bug: 1059272 Change-Id: Ib3101e58a95db134a427b2852bca4c4bd58f805e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2137828 Reviewed-by: Robert Flack <flackr@chromium.org> Commit-Queue: Hao Sheng <haozhes@chromium.org> Cr-Commit-Position: refs/heads/master@{#761027} -- wpt-commits: 9586cd0785957c1f58c58cc9df9bc7410ffe8aff wpt-pr: 22752
29 lines
1.4 KiB
JavaScript
29 lines
1.4 KiB
JavaScript
/**
|
|
* The function positions a new div to exactly the bounding client rect without
|
|
* using sticky position. If it's directly under the sticky element it could be
|
|
* obscured and not show up when compared to the ref. */
|
|
function createIndicatorForStickyElements(sticky_divs) {
|
|
if (sticky_divs.length == 0)
|
|
throw "No sticky div was found in the test case.";
|
|
|
|
sticky_divs.forEach((sticky_div) => {
|
|
// The relative position indicator will be able to share the same containing
|
|
// block to match the position with the same offset from in flow position
|
|
// (offsetTop/offsetLeft)
|
|
if (getComputedStyle(sticky_div).position != "sticky")
|
|
throw "Provided sticky element does not have position: sticky";
|
|
var position_div = document.createElement("div");
|
|
position_div.style.left = sticky_div.offsetLeft + "px";
|
|
position_div.style.top = sticky_div.offsetTop + "px";
|
|
// The absolute position is to ensure that the position_div adds zero size
|
|
// to in flow layout
|
|
position_div.style.position = "absolute"
|
|
var indicator_div = document.createElement("div");
|
|
indicator_div.style.width = sticky_div.offsetWidth + "px";
|
|
indicator_div.style.height = sticky_div.offsetHeight + "px";
|
|
indicator_div.style.backgroundColor = "blue";
|
|
indicator_div.style.position = "relative";
|
|
position_div.appendChild(indicator_div);
|
|
sticky_div.parentNode.insertBefore(position_div, sticky_div);
|
|
});
|
|
}
|