Skip to content

Commit

Permalink
Bug 1828506 [wpt PR 39576] - [anchor-position] Update layout on ancho…
Browse files Browse the repository at this point in the history
…r attribute changes, a=testonly

Automatic update from web-platform-tests
[anchor-position] Update layout on anchor attribute changes

This patch also adds WPTs for the anchor attribute (without popovers)
to support the HTML PR whatwg/html#9144

Fixed: 1432016
Change-Id: I3e80326268008e6beaf74389bb32c01050406a81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4434155
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Reviewed-by: Joey Arhar <jarhar@chromium.org>
Code-Coverage: Findit <findit-for-me@appspot.gserviceaccount.com>
Auto-Submit: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1131479}

--

wpt-commits: db5d9506cb37895b200037877628911afd3fac14
wpt-pr: 39576
  • Loading branch information
xiaochengh authored and moz-wptsync-bot committed Apr 19, 2023
1 parent d2e7b8b commit 8e67ee2
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/whatwg/html/pull/9144">
<link rel="author" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<style>
body {
margin: 0;
}
#anchor {
width: 100px;
height: 100px;
margin-left: 50px;
margin-top: 50px;
background: orange;
}
#target {
position: absolute;
left: anchor(right);
top: anchor(top);
width: 100px;
height: 100px;
background: lime;
}
</style>
<div id="anchor"></div>
<div id="target" anchor="anchor"></div>

<script>
test(() => {
assert_equals(target.offsetLeft, 150);
assert_equals(target.offsetTop, 50);
}, 'The anchor attribute should position the target element next to its implicit anchor');

test(() => {
assert_equals(target.anchorElement, anchor);
}, 'The element.anchorElement IDL should reflect the element pointed to by the anchor attribute');
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<link rel="help" href="https://github.com/whatwg/html/pull/9144">
<link rel="author" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<style>
body {
margin: 0;
}
.anchor {
width: 100px;
height: 100px;
margin-left: 50px;
margin-top: 50px;
background: orange;
}
.target {
position: absolute;
left: anchor(right, 123px);
top: anchor(top, 456px);
width: 100px;
height: 100px;
background: lime;
}
</style>
<div class="anchor" id="anchor1"></div>
<div class="anchor" id="anchor2"></div>
<div class="target" id="target1" anchor="anchor1"></div>
<div class="target" id="target2" anchor="anchor1"></div>

<script>
test(() => {
document.body.offsetLeft; // Force layout
target1.setAttribute('anchor', 'anchor2');
assert_equals(target1.offsetLeft, 150);
assert_equals(target1.offsetTop, 200);

target1.setAttribute('anchor', 'anchor1');
assert_equals(target1.offsetLeft, 150);
assert_equals(target1.offsetTop, 50);
}, 'Layout should be updated when anchor attribute changes to another element');

test(() => {
document.body.offsetLeft; // Force layout
target2.setAttribute('anchor', 'nonexist-anchor');
assert_equals(target2.offsetLeft, 123);
assert_equals(target2.offsetTop, 456);
}, 'Layout should be updated when anchor attribute changes to a non-existent element');
</script>

0 comments on commit 8e67ee2

Please sign in to comment.